Bắt đầu

Tài liệu này trình bày chi tiết kiến thức nền mà bạn cần để sử dụng Google Books API.

Giới thiệu

Tài liệu này dành cho các nhà phát triển muốn viết các ứng dụng có thể tương tác với Google Books API (API Google Sách). Google Sách có tầm nhìn để số hoá các cuốn sách trên thế giới. Bạn có thể sử dụng Google Books API (API Google Sách) để tìm kiếm nội dung, sắp xếp thư viện cá nhân của người dùng đã xác thực cũng như sửa đổi thư viện đó.

Trước khi bắt đầu

Tạo Tài khoản Google

Bạn cần có một Tài khoản Google cho mục đích kiểm thử. Nếu đã có tài khoản kiểm thử thì bạn đã hoàn tất; bạn có thể truy cập giao diện người dùng Google Sách để thiết lập, chỉnh sửa hoặc xem dữ liệu kiểm thử của mình.

Làm quen với Sách

Nếu chưa hiểu rõ các khái niệm của Google Sách, bạn nên đọc tài liệu này và thử nghiệm với giao diện người dùng trước khi bắt đầu lập trình. Tài liệu này giả định rằng bạn đã làm quen với các khái niệm lập trình web và định dạng dữ liệu web.

Tìm hiểu về các yêu cầu cấp phép và cách xác định ứng dụng của bạn

Khi ứng dụng của bạn yêu cầu dữ liệu riêng tư, yêu cầu này phải được một người dùng đã xác thực có quyền truy cập vào dữ liệu đó cấp phép.

Cụ thể, tất cả các thao tác thuộc "Thư viện của tôi" trong Google Books API đều được coi là riêng tư và cần phải được xác thực và cấp phép. Ngoài ra, chỉ người dùng sở hữu dữ liệu đó mới có thể thực hiện mọi thao tác sửa đổi dữ liệu Google Sách.

Khi ứng dụng của bạn yêu cầu dữ liệu công khai, yêu cầu không cần phải được uỷ quyền nhưng cần kèm theo một giá trị nhận dạng, chẳng hạn như khoá API.

Để biết thông tin về cách cấp quyền cho các yêu cầu và sử dụng khoá API, hãy xem phần Cấp phép cho yêu cầu và nhận dạng ứng dụng của bạn trong tài liệu Sử dụng API.

Nền API Sách

Khái niệm trong sách

Google Sách được xây dựng dựa trên bốn khái niệm cơ bản:

  • Số lượng: Một tập thể hiện dữ liệu mà Google Sách lưu trữ về một cuốn sách hoặc tạp chí. Đây là tài nguyên chính trong Books API (API Sách). Mọi tài nguyên khác trong API này đều chứa hoặc chú thích một ổ đĩa.
  • Bookshelf: Giá sách là một bộ sưu tập các tập sách. Google Sách cung cấp một tập hợp các giá sách được xác định sẵn cho mỗi người dùng, một số giá sách trong số đó do người dùng quản lý hoàn toàn, một số giá sách được tự động điền dựa trên hoạt động của người dùng và một số giá sách kết hợp. Người dùng có thể tạo, sửa đổi hoặc xoá các giá sách khác luôn có nhiều tập theo cách thủ công. Người dùng có thể đặt giá sách ở chế độ riêng tư hoặc công khai.

    Lưu ý: Hiện tại, bạn chỉ có thể tạo và xoá giá sách cũng như sửa đổi chế độ cài đặt quyền riêng tư trên giá sách thông qua trang web Google Sách.

  • Bài đánh giá: Bài đánh giá về một tập sách là sự kết hợp giữa điểm xếp hạng theo sao và/hoặc văn bản. Người dùng có thể gửi một bài đánh giá cho mỗi tập. Các bài đánh giá cũng được lấy từ những nguồn bên ngoài và được ghi nguồn một cách thích hợp.
  • Reading Position (Vị trí đọc): Vị trí đọc cho biết vị trí đọc gần đây nhất trong một tập của người dùng. Người dùng chỉ có thể có một vị trí đọc cho mỗi tập. Nếu người dùng chưa mở ổ đĩa đó trước đó, thì vị trí đọc sẽ không tồn tại. Vị trí đọc có thể lưu trữ thông tin chi tiết về vị trí đến độ phân giải của một từ. Thông tin này luôn riêng tư với người dùng.

Mô hình dữ liệu API Books

Tài nguyên là một thực thể dữ liệu riêng lẻ có giá trị nhận dạng duy nhất. Books API hoạt động trên 2 loại tài nguyên, dựa trên các khái niệm được mô tả ở trên:

  • Tài nguyên âm lượng: Biểu thị một âm lượng.
  • Tài nguyên giá sách: Đại diện cho một giá sách của một người dùng cụ thể.

Mô hình dữ liệu Books API (API Sách) dựa trên các nhóm tài nguyên, được gọi là bộ sưu tập:

Thu thập tập
Tuyển tập sách là bộ sưu tập mọi tài nguyên các tập do Google Sách quản lý. Do đó, bạn không thể liệt kê tất cả các tài nguyên ổ đĩa, nhưng bạn có thể liệt kê tất cả các ổ đĩa khớp với một nhóm cụm từ tìm kiếm.
Bộ sưu tập giá sách
Một bộ sưu tập giá sách bao gồm tất cả tài nguyên giá sách do Google Sách quản lý. Giá sách phải luôn được tham chiếu trong ngữ cảnh thư viện của người dùng cụ thể. Giá sách có thể chứa số không hoặc nhiều tập.

Google cung cấp một bộ giá sách được xác định trước cho mỗi người dùng:

  • Mục yêu thích: Giá sách có thể thay đổi.
  • Đã mua: Điền sẵn các tập mà người dùng đã mua. Người dùng không thể thêm hoặc xoá âm lượng theo cách thủ công.
  • Nội dung bạn muốn đọc: Giá sách có thể thay đổi.
  • Đang đọc: Giá sách có thể thay đổi.
  • Đã đọc: Giá sách có thể thay đổi.
  • Đã đánh giá: Điền sẵn các tập mà người dùng đã đánh giá. Người dùng không thể thêm hoặc xoá âm lượng theo cách thủ công.
  • Đã xem gần đây: Được điền sẵn các tập mà người dùng đã mở gần đây trong trình đọc trên web. Người dùng không thể thêm âm lượng theo cách thủ công.
  • Sách điện tử của tôi: Giá sách có thể thay đổi. Sách đã mua được thêm tự động, nhưng bạn có thể xoá theo cách thủ công.
  • Sách dành cho bạn: Có sẵn các đề xuất về số lượng sách dành riêng cho bạn. Nếu chúng tôi không có đề xuất nào cho người dùng, thì giá sách này không tồn tại.

Giá sách mẫu:

  • "Video yêu thích"
    • "Harry Potter"
  • "Sách điện tử của tôi"
    • "Chuyển"
    • "Chạng vạng"
    • "Cô gái có hình xăm rồng"

Hoạt động của Books API (API Google Sách)

Bạn có thể gọi 5 phương thức đối với các bộ sưu tập và tài nguyên trong Books API (API Sách), như mô tả trong bảng sau.

Hoạt động Nội dung mô tả Liên kết HTTP REST
list Liệt kê một nhóm nhỏ tài nguyên được chỉ định trong một tập hợp. GET trên URI của bộ sưu tập.
chèn Chèn tài nguyên mới vào bộ sưu tập (tạo tài nguyên mới). POST trên URI bộ sưu tập, nơi bạn truyền dữ liệu cho tài nguyên mới.
nhận Lấy một tài nguyên cụ thể. GET trên URI tài nguyên.
cập nhật Cập nhật một tài nguyên cụ thể. PUT trên URI tài nguyên, nơi bạn truyền dữ liệu cho tài nguyên đã cập nhật.
xóa Xoá một tài nguyên cụ thể. DELETE trên URI tài nguyên, nơi bạn truyền dữ liệu để xoá tài nguyên.

Bảng dưới đây tóm tắt các thao tác được hỗ trợ cho nhiều loại tài nguyên. Các thao tác áp dụng cho dữ liệu riêng tư của người dùng được gọi là thao tác "Thư viện của tôi" và tất cả đều yêu cầu xác thực.

Loại tài nguyên
Thao tác được hỗ trợ
danh sách chèn nhận cập nhật xoá
Âm lượng có*
Giá sách có* có, ĐÃ XÁC THỰC có* có, ĐÃ XÁC THỰC có, ĐÃ XÁC THỰC
Vị trí đọc có, ĐÃ XÁC THỰC có, ĐÃ XÁC THỰC có, ĐÃ XÁC THỰC có, ĐÃ XÁC THỰC

*Cả phiên bản ĐÃ XÁC THỰC và chưa được xác thực của các hoạt động này đều có sẵn, trong đó các yêu cầu được xác thực hoạt động trên dữ liệu "Thư viện của tôi" riêng tư của người dùng và các yêu cầu chưa được xác thực chỉ hoạt động trên dữ liệu công khai.

Kiểu gọi

Có một số cách để gọi API:

  • Trực tiếp sử dụng REST
  • Sử dụng REST từ JavaScript (không cần mã phía máy chủ)

Kiến trúc chuyển trạng thái đại diện (REST)

REST là một kiểu kiến trúc phần mềm mang lại cách tiếp cận thuận tiện và nhất quán để yêu cầu và sửa đổi dữ liệu.

Thuật ngữ REST là viết tắt của "Đại diện chuyển trạng thái". Trong ngữ cảnh của API Google, nó đề cập đến việc sử dụng các động từ HTTP để truy xuất và sửa đổi bản trình bày dữ liệu do Google lưu trữ.

Trong hệ thống RESTful, các tài nguyên được lưu trữ trong kho dữ liệu; máy khách gửi yêu cầu yêu cầu máy chủ thực hiện một thao tác cụ thể (chẳng hạn như tạo, truy xuất, cập nhật hoặc xoá tài nguyên), còn máy chủ thực hiện thao tác và gửi phản hồi, thường ở dạng biểu diễn tài nguyên đã chỉ định.

Trong API RESTful của Google, ứng dụng chỉ định một hành động bằng cách sử dụng động từ HTTP như POST, GET, PUT hoặc DELETE. Phương thức này chỉ định tài nguyên bằng một URI duy nhất trên toàn hệ thống có dạng sau:

https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters

Vì mọi tài nguyên API đều có URI riêng biệt có thể truy cập HTTP, nên REST cho phép lưu dữ liệu vào bộ nhớ đệm và được tối ưu hoá để hoạt động với cơ sở hạ tầng phân phối của web.

Bạn có thể thấy định nghĩa về phương thức trong tài liệu về các tiêu chuẩn HTTP 1.1 hữu ích; vì các định nghĩa này bao gồm nội dung kỹ thuật cho GET, POST, PUTDELETE.

REST trong Books API

Các thao tác được hỗ trợ trên Sách liên kết trực tiếp đến các động từ HTTP REST, như mô tả trong Thao tác API của Sách.

Định dạng cụ thể cho URI API của Sách là:

https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters

trong đó resourceID là giá trị nhận dạng tài nguyên số lượng hoặc giá sách và parameters là mọi tham số áp dụng cho truy vấn. Hãy xem bài viết Tài liệu tham khảo về tham số truy vấn để biết thông tin chi tiết.

Định dạng của phần mở rộng về đường dẫn resourceID cho phép bạn xác định tài nguyên mình đang sử dụng, ví dụ:

https://www.googleapis.com/books/v1/volumes
https://www.googleapis.com/books/v1/volumes/volumeId
https://www.googleapis.com/books/v1/mylibrary/bookshelves
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes
...

Xin lưu ý rằng các thao tác với mylibrary trong URI chỉ áp dụng cho dữ liệu thư viện riêng tư của người dùng hiện đã được xác thực. Bạn có thể xem tóm tắt toàn bộ URI dùng cho mỗi thao tác được hỗ trợ trong API trong tài liệu Tài liệu tham khảo về API của sách.

Dưới đây là một vài ví dụ về cách hoạt động của chế độ này trong Books API (API Sách).

Tìm kiếm sản phẩm may chần:

GET https://www.googleapis.com/books/v1/volumes?q=quilting

Nhận thông tin về âm lượng s1gVAAAAYAAJ:

GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJ

Kiến trúc chuyển trạng thái đại diện (REST) từ JavaScript

Bạn có thể gọi Books API (API Sách) bằng REST từ JavaScript (còn được gọi là JSON-P), dùng tham số truy vấn callback và một hàm callback. Điều này cho phép bạn viết các ứng dụng đa dạng hiển thị dữ liệu Sách mà không cần viết bất kỳ mã phía máy chủ nào.

Lưu ý: Bạn có thể gọi các phương thức đã xác thực bằng cách truyền mã thông báo OAuth 2.0 thông qua tham số access_token. Để lấy mã thông báo OAuth 2.0 để sử dụng với JavaScript, hãy làm theo hướng dẫn được mô tả trong OAuth 2.0 cho ứng dụng web phía máy khách. Trong thẻ "Quyền truy cập API" của Bảng điều khiển API, hãy nhớ thiết lập Mã ứng dụng khách cho ứng dụng web và dùng những thông tin đăng nhập OAuth 2.0 đó khi nhận mã thông báo của bạn.

Ví dụ sau đây sử dụng phương pháp này để hiển thị kết quả tìm kiếm cho "harry potter":

<html>
  <head>
    <title>Books API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function handleResponse(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.text should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.volumeInfo.title;
      }
    }
    </script>
    <script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script>
  </body>
</html>

Định dạng dữ liệu

JSON

JSON (Ký hiệu đối tượng JavaScript) là một định dạng dữ liệu phổ biến, không phụ thuộc vào ngôn ngữ, cung cấp bản trình bày văn bản đơn giản của các cấu trúc dữ liệu tùy ý. Để biết thêm thông tin, hãy xem json.org.