Korzystanie z interfejsu API

Spis treści

Wstęp

Ten dokument jest przeznaczony dla programistów, którzy chcą tworzyć aplikacje obsługujące interfejs API Książek. Misją Książek Google jest digitalizacja treści książek z całego świata i ułatwiania ich wyszukiwania w internecie. Interfejs Books API to sposób na wyszukiwanie i otwieranie tych treści, a także na tworzenie i wyświetlanie personalizacji dotyczących tych treści.

Jeśli nie masz wiedzy o Książkach Google, zanim zaczniesz pisać kod, przeczytaj Pierwsze kroki.

Autoryzacja żądań i identyfikowanie aplikacji

Każde żądanie wysyłane przez aplikację do interfejsu Books API musi identyfikować Twoją aplikację w Google. Są 2 sposoby identyfikowania aplikacji: za pomocą tokena OAuth 2.0 (który również autoryzuje żądanie) lub za pomocą klucza interfejsu API aplikacji. Oto jak zdecydować, której z tych opcji użyć:

  • Jeśli żądanie wymaga autoryzacji (np. dostępu do prywatnych danych danej osoby), aplikacja musi dostarczyć wraz z nim token OAuth 2.0. Aplikacja może też dostarczać klucz interfejsu API, ale nie musi.
  • Jeśli żądanie nie wymaga autoryzacji (np. danych publicznych), aplikacja musi dostarczyć klucz interfejsu API lub token OAuth 2.0 albo obie te opcje – która opcja jest dla Ciebie najwygodniejsza.

Informacje o protokołach autoryzacji

Twoja aplikacja musi autoryzować żądania za pomocą protokołu OAuth 2.0. Inne protokoły nie są obsługiwane. Jeśli aplikacja używa funkcji Zaloguj się przez Google, niektórymi aspektami autoryzacji nie musisz się zajmować.

Autoryzowanie żądań za pomocą protokołu OAuth 2.0

Żądania dotyczące niepublicznych danych użytkownika wysyłane do interfejsu Books API muszą być autoryzowane przez uwierzytelnionego użytkownika.

Szczegóły procesu autoryzacji z użyciem protokołu OAuth 2.0 różnią się nieznacznie w zależności od rodzaju projektowanej aplikacji. Do większości typów aplikacji ma zastosowanie ten ogólny proces:

  1. Gdy tworzysz aplikację, rejestrujesz ją, korzystając z konsoli interfejsów API Google. Następnie Google przekazuje informacje, które są potrzebne później, takie jak identyfikator klienta i tajny klucz klienta.
  2. Aktywuj interfejs Books API w konsoli interfejsów API Google. (jeśli interfejsu API nie ma na liście w konsoli, pomijasz ten krok).
  3. Gdy Twoja aplikacja potrzebuje dostępu do danych użytkownika, prosi Google o konkretny zakres dostępu.
  4. Google wyświetla użytkownikowi ekran zgody z prośbą o autoryzowanie dostępu aplikacji do niektórych danych.
  5. Jeśli użytkownik wyrazi zgodę, Google przekazuje Twojej aplikacji ważny przez krótki czas token dostępu.
  6. Aplikacja żąda danych użytkownika i dołącza do żądania token dostępu.
  7. Jeśli Google uzna, że żądanie i token są prawidłowe, przesyła dane, o które prosisz.

Niektóre procesy obejmują dodatkowe kroki, takie jak wykorzystanie tokenów odświeżania do uzyskania nowych tokenów dostępu. Szczegółowe informacje o procesach obowiązujących w przypadku różnych typów aplikacji znajdziesz w dokumencie Google na temat protokołu OAuth 2.0.

Oto informacje o zakresie protokołu OAuth 2.0 dla interfejsu Books API:

https://www.googleapis.com/auth/books

Aby poprosić o dostęp przy użyciu protokołu OAuth 2.0, aplikacja potrzebuje danych z zakresu oraz informacji przekazywanych przez Google po zarejestrowaniu aplikacji (takich jak identyfikator klienta i tajny klucz klienta).

Wskazówka: biblioteki klienta interfejsów API Google mogą wykonać niektóre procesy autoryzacji za Ciebie. Są dostępne dla różnych języków programowania. Więcej szczegółów znajdziesz na stronie z bibliotekami i próbkami.

Uzyskiwanie i używanie klucza interfejsu API

Żądania wysyłane do interfejsu Books API dotyczące danych publicznych muszą mieć identyfikator, którym może być klucz interfejsu API lub token dostępu.

Aby uzyskać klucz interfejsu API:

  1. Otwórz stronę Dane logowania w konsoli interfejsów API.
  2. Ten interfejs API obsługuje 2 typy danych logowania. Utwórz dane logowania odpowiednie do Twojego projektu:
    • OAuth 2.0: za każdym razem, gdy aplikacja żąda prywatnych danych użytkownika, musi wraz z nimi wysyłać token OAuth 2.0. Twoja aplikacja najpierw wysyła identyfikator klienta, a być może tajny klucz klienta, aby uzyskać token. Dane logowania OAuth 2.0 możesz generować dla aplikacji internetowych, kont usługi i zainstalowanych aplikacji.

      Więcej informacji znajdziesz w dokumentacji protokołu OAuth 2.0.

    • Klucze interfejsu API: żądanie, które nie dostarcza tokena OAuth 2.0, musi wysłać klucz interfejsu API. Klucz identyfikuje projekt i zapewnia dostęp do interfejsu API, limity oraz raporty.

      Interfejs API obsługuje kilka typów ograniczeń kluczy interfejsu API. Jeśli klucz interfejsu API, którego potrzebujesz, jeszcze nie istnieje, utwórz klucz interfejsu API w konsoli, klikając Utwórz dane logowania > Klucz interfejsu API. Możesz ograniczyć użycie klucza przed użyciem w środowisku produkcyjnym. W tym celu kliknij Ogranicz klucz i wybierz jedno z ograniczeń.

Aby zabezpieczyć klucze interfejsu API, postępuj zgodnie ze sprawdzonymi metodami korzystania z kluczy interfejsu API.

Gdy uzyskasz klucz interfejsu API, Twoja aplikacja może dołączać parametr zapytania key=yourAPIKey do wszystkich adresów URL żądań.

Klucz interfejsu API można bezpiecznie umieszczać w adresach URL, więc nie trzeba go kodować.

Identyfikatory Książek Google

Przy użyciu niektórych wywołań metod interfejsu API musisz określić pola identyfikatorów. W Książkach Google używane są 3 rodzaje dokumentów tożsamości:

  • Identyfikatory tomów – unikalne ciągi znaków przypisane do każdego tomu, o którym znają książki w Książkach Google. Przykład identyfikatora woluminu to _LettPDhwR0C. Identyfikator woluminu możesz uzyskać za pomocą interfejsu API, wysyłając żądanie zwracające zasób woluminu. Znajdziesz go w polu id.
  • Identyfikatory półek na książki – wartości liczbowe podane półce na książki w bibliotece użytkownika. Każdy użytkownik ma dostęp do wstępnie zdefiniowanych półek o tych identyfikatorach:
    • Ulubione: 0
    • Kupione: 1
    • Do przeczytania: 2
    • Do przeczytania: 3
    • Przeczytano: 4
    • Sprawdzono: 5
    • Ostatnio wyświetlane: 6
    • Moje e-booki: 7
    • Książki dla Ciebie: 8 Jeśli nie mamy żadnych rekomendacji dla użytkownika, ta półka nie istnieje.
    Identyfikatory półek niestandardowych są większe niż 1000. Identyfikator półki na książki jest unikalny dla danego użytkownika. Oznacza to, że dwóch użytkowników może mieć półkę z tym samym identyfikatorem odnoszącym się do różnych półek. Możesz użyć interfejsu API, aby uzyskać identyfikator półki na książki, wysyłając żądanie, które zwraca zasób półki. Znajdziesz go w polu id.
  • Identyfikatory użytkowników – niepowtarzalne wartości liczbowe przypisywane każdemu użytkownikowi. Te wartości nie muszą być takie same jak wartości identyfikatora używane w innych usługach Google. Obecnie jedynym sposobem na pobranie identyfikatora użytkownika jest wyodrębnienie go z linku SelfLink w zasobie półki na książki pobranego za pomocą uwierzytelnionego żądania. Użytkownicy mogą również uzyskać własny identyfikator w witrynie Książki. Użytkownik nie może uzyskać identyfikatora innego użytkownika za pomocą interfejsu API ani w witrynie Książek. Musi on udostępnić te informacje w sposób jednoznaczny, na przykład w e-mailu.

Identyfikatory w witrynie Książek Google

Identyfikatory, których używasz w interfejsie Books API, to te same identyfikatory, których używasz w witrynie Książki Google.

  • Identyfikator woluminu

    Gdy wyświetlasz w witrynie konkretny tom, jego identyfikator znajdziesz w parametrze adresu URL id. Oto przykład:

    https://books.google.com/ebooks?id=buc0AAAAMAAJ&dq=holmes&as_brr=4&source=webstore_bookcard

  • Identyfikator półki na książki

    Gdy wyświetlasz w witrynie konkretną półkę na książki, jej identyfikator znajdziesz w parametrze adresu URL as_coll. Oto przykład:

    https://books.google.com/books?hl=en&as_coll=0&num=10&uid=11122233344455566778&source=gbs_slider_cls_metadata_0_mylibrary

  • Identyfikator użytkownika

    Gdy przeglądasz bibliotekę na tej stronie, identyfikator użytkownika możesz znaleźć w parametrze adresu URL uid. Oto przykład:

    https://books.google.com/books?uid=11122233344455566778&source=gbs_lp_bookshelf_list

Ustawianie lokalizacji użytkownika

Książki Google przestrzegają praw autorskich, umów oraz innych ograniczeń prawnych związanych z lokalizacją użytkownika. W związku z tym niektórzy użytkownicy mogą nie mieć dostępu do treści książek z określonych krajów. Na przykład niektóre książki można „podglądać” tylko w Stanach Zjednoczonych. Takie linki do podglądu są pomijane w przypadku użytkowników z innych krajów. W związku z tym wyniki interfejsu API są ograniczone w zależności od adresu IP serwera lub aplikacji klienckiej.

Praca z woluminami

Wyszukuję

Możesz przeprowadzić wyszukiwanie woluminów, wysyłając żądanie HTTP GET na ten identyfikator URI:

https://www.googleapis.com/books/v1/volumes?q=search+terms

To żądanie zawiera jeden wymagany parametr:

  • q – wyszukaj woluminy zawierające ten ciąg tekstowy. W wyszukiwanych hasłach możesz określić specjalne słowa kluczowe, które będą służyć do wyszukiwania w konkretnych polach, na przykład:
    • intitle: Zwraca wyniki, w przypadku których w tytule znajduje się tekst występujący po tym słowie kluczowym.
    • inauthor: Zwraca wyniki, w których przypadku występuje tekst występujący po tym słowie kluczowym.
    • inpublisher: Zwraca wyniki, w przypadku których znaleziono tekst występujący po tym słowie kluczowym.
    • subject: Zwraca wyniki, w których tekst występujący po tym słowie kluczowym znajduje się na liście kategorii woluminu.
    • isbn: Zwraca wyniki, w których tekst występujący po słowie kluczowym jest numerem ISBN.
    • lccn: Zwraca wyniki, w których tekst występujący po tym słowie kluczowym to numer Biblioteki Kongresu Stanów Zjednoczonych.
    • oclc: Zwraca wyniki, w których tekst po słowie kluczowym to numer Online Computer Library Center.

Prośba

Oto przykład wyszukiwania utworu Daniela Keyesa, „Flowers for Algernon”:

GET https://www.googleapis.com/books/v1/volumes?q=flowers+inauthor:keyes&key=yourAPIKey

Uwaga: wyszukiwanie nie wymaga uwierzytelniania, więc nie musisz dostarczać nagłówka HTTP Authorization w żądaniu GET. Jeśli jednak wywołanie jest wykonywane z użyciem uwierzytelniania, każdy wolumin będzie zawierał informacje dotyczące użytkownika, takie jak stan zakupu.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer w odpowiedzi przesyła kod stanu HTTP 200 OK i wyświetli wynik woluminu:

200 OK

{
 "kind": "books#volumes",
 "items": [
  {
   "kind": "books#volume",
   "id": "_ojXNuzgHRcC",
   "etag": "OTD2tB19qn4",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/_ojXNuzgHRcC",
   "volumeInfo": {
    "title": "Flowers",
    "authors": [
     "Vijaya Khisty Bodach"
    ],
   ...
  },
  {
   "kind": "books#volume",
   "id": "RJxWIQOvoZUC",
   "etag": "NsxMT6kCCVs",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/RJxWIQOvoZUC",
   "volumeInfo": {
    "title": "Flowers",
    "authors": [
     "Gail Saunders-Smith"
    ],
    ...
  },
  {
   "kind": "books#volume",
   "id": "zaRoX10_UsMC",
   "etag": "pm1sLMgKfMA",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/zaRoX10_UsMC",
   "volumeInfo": {
    "title": "Flowers",
    "authors": [
     "Paul McEvoy"
    ],
    ...
  },
  "totalItems": 3
}

Opcjonalne parametry zapytania

Oprócz standardowych parametrów zapytania podczas wyszukiwania woluminów możesz używać podanych niżej parametrów zapytania.

Format pobierania

Za pomocą parametru download możesz ograniczyć zwracane wyniki do woluminów, które mają dostępny format epub, ustawiając na wartość epub.

Oto przykładowe wyszukiwanie książek z dostępnym plikiem EPUB do pobrania:

GET https://www.googleapis.com/books/v1/volumes?q=pride+prejudice&download=epub&key=yourAPIKey
Filtrowanie

Aby jeszcze bardziej ograniczyć zwracane wyniki, możesz użyć parametru filter, ustawiając go na jedną z tych wartości:

  • partial – zwraca wyniki, w których można wyświetlić podgląd co najmniej części tekstu.
  • full – zwraca tylko wyniki, w których cały tekst jest widoczny.
  • free-ebooks – zwraca tylko wyniki, które są bezpłatnymi e-bookami Google.
  • paid-ebooks – zwraca tylko wyniki zawierające e-booki Google z ceną.
  • ebooks – zwraca tylko płatne lub bezpłatne e-booki Google. Przykładami treści innych niż e-booki mogą być czasopisma lub treści wydawcy dostępne w ograniczonej wersji przedpremierowej.

Ten przykład ogranicza wyniki wyszukiwania do tych dostępnych jako bezpłatne e-booki:

GET https://www.googleapis.com/books/v1/volumes?q=flowers&filter=free-ebooks&key=yourAPIKey
Podział na strony

Listę woluminów możesz podzielić na strony, określając 2 wartości w parametrach żądania:

  • startIndex – pozycja w kolekcji, od której ma się rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Wartość domyślna to 10, a maksymalna dozwolona to 40.

Za pomocą parametru printType możesz ograniczyć zwracane wyniki do konkretnego typu materiałów drukowanych lub publikacji, ustawiając go na jedną z tych wartości:

  • all – brak ograniczeń ze względu na typ wydruku (domyślnie).
  • books – zwraca tylko wyniki, które są książkami.
  • magazines – zwraca wyniki, które są czasopismami.

Ten przykład ogranicza wyniki wyszukiwania do czasopism:

GET https://www.googleapis.com/books/v1/volumes?q=time&printType=magazines&key=yourAPIKey
Odwzorowanie

Parametru projection możesz używać z jedną z tych wartości, aby określić wstępnie zdefiniowany zestaw pól liczby do zwrócenia:

  • full – zwraca wszystkie pola woluminu.
  • lite – zwraca tylko określone pola. Aby dowiedzieć się, które pola uwzględnione, sprawdź opisy pól oznaczone podwójną gwiazdkami w dokumentacji woluminu.

Ten przykład zwraca wyniki wyszukiwania z ograniczoną ilością informacji:

GET https://www.googleapis.com/books/v1/volumes?q=flowers&projection=lite&key=yourAPIKey
Sortowanie

Domyślnie żądanie wyszukiwania woluminów zwraca wyniki maxResults, gdzie maxResults to parametr używany do podziału na strony (powyżej) uporządkowane według trafności w stosunku do wyszukiwanych haseł.

Możesz zmienić kolejność, ustawiając parametr orderBy na jedną z tych wartości:

  • relevance – zwraca wyniki w kolejności według trafności wyszukiwanych haseł (jest to ustawienie domyślne).
  • newest – zwraca wyniki w kolejności od najnowszych do najstarszych.

Ten przykład pokazuje wyniki według daty publikacji (od najnowszych do najstarszych):

GET https://www.googleapis.com/books/v1/volumes?q=flowers&orderBy=newest&key=yourAPIKey

Pobieram określony wolumin

Informacje o konkretnym woluminie można pobrać, wysyłając żądanie HTTP GET do identyfikatora URI zasobu woluminu:

https://www.googleapis.com/books/v1/volumes/volumeId

Zastąp parametr ścieżki volumeId identyfikatorem woluminu do pobrania. Więcej informacji o identyfikatorach tomów znajdziesz w sekcji Identyfikatory Książek Google.

Prośba

Oto przykład żądania GET, które pobiera 1 tom:

GET https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC?key=yourAPIKey

Uwaga: pobieranie informacji o woluminach nie wymaga uwierzytelniania, więc nie musisz dołączać nagłówka HTTP Authorization w żądaniu GET. Jeśli jednak wywołanie zostanie wykonane w celu uwierzytelnienia, wolumin będzie zawierał informacje dotyczące użytkownika, takie jak stan zakupu.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer w odpowiedzi przesyła kod stanu HTTP 200 OK i żądanie zasobu woluminu:

200 OK

{
 "kind": "books#volume",
 "id": "zyTCAlFPjgYC",
 "etag": "f0zKg75Mx/I",
 "selfLink": "https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC",
 "volumeInfo": {
  "title": "The Google story",
  "authors": [
   "David A. Vise",
   "Mark Malseed"
  ],
  "publisher": "Random House Digital, Inc.",
  "publishedDate": "2005-11-15",
  "description": "\"Here is the story behind one of the most remarkable Internet
  successes of our time. Based on scrupulous research and extraordinary access
  to Google, ...",
  "industryIdentifiers": [
   {
    "type": "ISBN_10",
    "identifier": "055380457X"
   },
   {
    "type": "ISBN_13",
    "identifier": "9780553804577"
   }
  ],
  "pageCount": 207,
  "dimensions": {
   "height": "24.00 cm",
   "width": "16.03 cm",
   "thickness": "2.74 cm"
  },
  "printType": "BOOK",
  "mainCategory": "Business & Economics / Entrepreneurship",
  "categories": [
   "Browsers (Computer programs)",
   ...
  ],
  "averageRating": 3.5,
  "ratingsCount": 136,
  "contentVersion": "1.1.0.0.preview.2",
  "imageLinks": {
   "smallThumbnail": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api",
   "thumbnail": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
   "small": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=2&edge=curl&source=gbs_api",
   "medium": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=3&edge=curl&source=gbs_api",
   "large": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=4&edge=curl&source=gbs_api",
   "extraLarge": "https://books.google.com/books?id=zyTCAlFPjgYC&printsec=frontcover&img=1&zoom=6&edge=curl&source=gbs_api"
  },
  "language": "en",
  "infoLink": "https://books.google.com/books?id=zyTCAlFPjgYC&ie=ISO-8859-1&source=gbs_api",
  "canonicalVolumeLink": "https://books.google.com/books/about/The_Google_story.html?id=zyTCAlFPjgYC"
 },
 "saleInfo": {
  "country": "US",
  "saleability": "FOR_SALE",
  "isEbook": true,
  "listPrice": {
   "amount": 11.99,
   "currencyCode": "USD"
  },
  "retailPrice": {
   "amount": 11.99,
   "currencyCode": "USD"
  },
  "buyLink": "https://books.google.com/books?id=zyTCAlFPjgYC&ie=ISO-8859-1&buy=&source=gbs_api"
 },
 "accessInfo": {
  "country": "US",
  "viewability": "PARTIAL",
  "embeddable": true,
  "publicDomain": false,
  "textToSpeechPermission": "ALLOWED_FOR_ACCESSIBILITY",
  "epub": {
   "isAvailable": true,
   "acsTokenLink": "https://books.google.com/books/download/The_Google_story-sample-epub.acsm?id=zyTCAlFPjgYC&format=epub&output=acs4_fulfillment_token&dl_type=sample&source=gbs_api"
  },
  "pdf": {
   "isAvailable": false
  },
  "accessViewStatus": "SAMPLE"
 }
}
Informacje o dostępie

Sekcja accessInfo służy przede wszystkim do określania, jakie funkcje są dostępne w przypadku e-booka. epub to e-book w formacie tekstu ciągłego. Sekcja epub będzie miała właściwość isAvailable wskazującą, czy dany typ e-booka jest dostępny. Jeśli dostępna jest próbka książki lub użytkownik może ją przeczytać, ponieważ jej zakupiła lub znajduje się w domenie publicznej użytkownika w jej lokalizacji, będzie zawierał link do pobrania. pdf w przypadku Książek Google oznacza zeskanowaną wersję e-booka z podobnymi informacjami, takimi jak to, czy jest dostępny, i link do pobrania. Google zaleca korzystanie z plików epub na czytnikach e-booków i smartfonach, ponieważ zeskanowane strony mogą być trudne do odczytania na tych urządzeniach. Jeśli nie ma sekcji accessInfo, wolumin nie jest dostępny jako e-book Google.

Opcjonalne parametry zapytania

Oprócz standardowych parametrów zapytania możesz podczas pobierania konkretnego woluminu użyć poniższego parametru zapytania.

Odwzorowanie

Parametru projection możesz używać z jedną z tych wartości, aby określić wstępnie zdefiniowany zestaw pól liczby do zwrócenia:

  • full – zwraca wszystkie pola woluminu.
  • lite – zwraca tylko określone pola. Aby dowiedzieć się, które pola uwzględnione, sprawdź opisy pól oznaczone podwójną gwiazdkami w dokumentacji woluminu.

Ten przykład zwraca ograniczone informacje o pojedynczym woluminie:

GET https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC?projection=lite&key=yourAPIKey

Praca z półkami na książki

Pobieranie listy publicznych półek na książki użytkownika

Możesz pobrać listę publicznych półek na książki użytkownika, wysyłając żądanie HTTP GET do identyfikatora URI w następującym formacie:

https://www.googleapis.com/books/v1/users/userId/bookshelves

Zastąp parametr ścieżki userId identyfikatorem użytkownika, którego półki na książki chcesz pobrać. Więcej informacji o identyfikatorach użytkowników znajdziesz w sekcji Identyfikatory Książek Google.

Prośba

Oto przykład:

GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves&key=yourAPIKey

Ponieważ użytkownik nie musi być uwierzytelniony, aby uzyskać informacje o półkach publicznych, nie musisz w żądaniu GET wysyłać nagłówka HTTP Authorization.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie, przesyłając kod stanu HTTP 200 OK i listę półek na książki:

200 OK

{
 "kind": "books#bookshelves",
 "items": [
  {
   ...
  },
  {
   "kind": "books#bookshelf",
   "id": 3,
   "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3",
   "title": "Reading now",
   "description": "",
   "access": "PUBLIC",
   "updated": "2011-02-02T20:34:20.146Z",
   "created": "2011-02-02T20:34:20.146Z",
   "volumeCount": 2,
   "volumesLastUpdated": "2011-02-02T20:34:20.110Z"
  },
  ...
 ]
}

Opcjonalne parametry zapytania

Podczas pobierania listy publicznych półek na książki użytkownika możesz użyć standardowych parametrów zapytania.

Pobieranie konkretnej publicznej półki na książki

Możesz pobrać konkretną publiczną półkę, wysyłając do identyfikatora URI żądanie HTTP GET w następującym formacie:

https://www.googleapis.com/books/v1/users/userId/bookshelves/shelf

Zastąp parametry ścieżki userId i shelf identyfikatorami określającymi użytkownika oraz półkę na książki, którą chcesz pobrać. Więcej informacji znajdziesz w sekcji Identyfikatory Książek Google.

Prośba

Oto przykład:

GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3?key=yourAPIKey

Ponieważ użytkownik nie musi być uwierzytelniony, aby uzyskać informacje o półkach publicznych, nie musisz w żądaniu GET wysyłać nagłówka HTTP Authorization.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowiada, przesyłając kod stanu HTTP 200 OK i zasób półki:

200 OK

{
  "kind": "books#bookshelf",
  "id": 3,
  "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3",
  "title": "Reading now",
  "description": "",
  "access": "PUBLIC",
  "updated": "2011-02-02T20:34:20.146Z",
  "created": "2011-02-02T20:34:20.146Z",
  "volumeCount": 2,
  "volumesLastUpdated": "2011-02-02T20:34:20.110Z"
}

Opcjonalne parametry zapytania

Podczas pobierania określonej publicznej półki możesz użyć standardowych parametrów zapytania.

Pobieranie listy tomów z publicznej półki

Możesz pobrać listę tomów z publicznej półki użytkownika, wysyłając żądanie HTTP GET z identyfikatorem URI w następującym formacie:

https://www.googleapis.com/books/v1/user/userId/bookshelves/shelf/volumes

Prośba

Oto przykład:

GET https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3/volumes?key=yourAPIKey

Zastąp parametry ścieżki userId i shelf identyfikatorami określającymi użytkownika oraz półkę na książki, którą chcesz pobrać. Więcej informacji znajdziesz w sekcji Identyfikatory Książek Google.

Ponieważ użytkownik nie musi być uwierzytelniony, aby uzyskać informacje o półkach publicznych, nie musisz w żądaniu GET wysyłać nagłówka HTTP Authorization.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie, przesyłając kod stanu HTTP 200 OK i listę półek na książki użytkownika:

200 OK

{
 "kind": "books#volumes",
 "items": [
  {
   "kind": "books#volume",
   "id": "AZ5J6B1-4BoC",
   "etag": "kIzQA7IUObk",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/AZ5J6B1-4BoC",
   "volumeInfo": {
    "title": "The Girl Who Kicked the Hornet's Nest",
    "authors": [
     "Stieg Larsson"
    ],
    "publisher": "Knopf",
    "publishedDate": "2010-05-25",
    ...
  },
  {
   "kind": "books#volume",
   "id": "UvK1Slvkz3MC",
   "etag": "otKmdbRgdFQ",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/UvK1Slvkz3MC",
   "volumeInfo": {
    "title": "The Girl who Played with Fire",
    "authors": [
     "Stieg Larsson"
    ],
    "publisher": "Knopf",
    "publishedDate": "2009-07-28",
    ...
  },
  {
   "kind": "books#volume",
   "id": "OBM3AAAAIAAJ",
   "etag": "xb47kTr8HsQ",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/OBM3AAAAIAAJ",
   "volumeInfo": {
    "title": "The Sign of Four",
    "authors": [
     "Sir Arthur Conan Doyle"
    ],
    "publishedDate": "1890",
    ...
  }
 ],
 "totalItems": 3
}

Opcjonalne parametry zapytania

Oprócz standardowych parametrów zapytania możesz użyć poniższego parametru zapytania podczas pobierania listy tomów na publicznej półce.

Podział na strony

Listę woluminów możesz podzielić na strony, określając 2 wartości w parametrach żądania:

  • startIndex – pozycja w kolekcji, od której ma się rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Wartość domyślna to 10, a maksymalna dozwolona to 40.

Praca z półkami na książki w „Mojej bibliotece”

Wszystkie żądania w sekcji „Moja biblioteka” dotyczą danych uwierzytelnionego użytkownika.

Pobieranie listy półek na książki

Możesz pobrać listę wszystkich półek na książki uwierzytelnionego użytkownika, wysyłając do identyfikatora URI żądanie HTTP GET w następującym formacie:

https://www.googleapis.com/books/v1/mylibrary/bookshelves

Prośba

Oto przykład:

GET https://www.googleapis.com/books/v1/mylibrary/bookshelves?key=yourAPIKey
Authorization: /* auth token here */

Uwaga: aby pobrać listę półek na książki z listy „Moja biblioteka”, użytkownik musi być uwierzytelniony. Dlatego wraz z żądaniem GET musisz podać nagłówek HTTP Authorization.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer wysyła w odpowiedzi kod stanu HTTP 200 OK i listę wszystkich półek na książki dla bieżącego uwierzytelnionego użytkownika:

200 OK

{
 "kind": "books#bookshelves",
 "items": [
  {
   "kind": "books#bookshelf",
   "id": 0,
   "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/0",
   "title": "Favorites",
   "access": "PRIVATE",
   "updated": "2011-04-22T04:03:15.416Z",
   "created": "2011-04-22T04:03:15.416Z",
   "volumeCount": 0,
   "volumesLastUpdated": "2011-04-22T04:03:17.000Z"
  },
  {
   "kind": "books#bookshelf",
   "id": 3,
   "selfLink": "https://www.googleapis.com/books/v1/users/1112223334445556677/bookshelves/3",
   "title": "Reading now",
   "access": "PUBLIC",
   "updated": "2010-11-11T19:44:22.377Z",
   "created": "2010-11-11T19:44:22.377Z",
   "volumeCount": 1,
   "volumesLastUpdated": "2010-11-11T19:44:22.341Z"
  }
 ]
}

Opcjonalne parametry zapytania

Podczas pobierania listy półek na książki uwierzytelnionego użytkownika możesz użyć standardowych parametrów zapytania.

Pobieranie listy tomów z mojej półki

Aby pobrać listę tomów z półki uwierzytelnionego użytkownika, wyślij do identyfikatora URI żądanie HTTP GET w tym formacie:

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

Zastąp parametr ścieżki półki identyfikatorem półki. Więcej informacji o identyfikatorach półki na książki znajdziesz w sekcji Identyfikatory Książek Google.

Prośba

Oto przykład:

GET https://www.googleapis.com/books/v1/mylibrary/bookshelves/7/volumes?key=yourAPIKey
Authorization: /* auth token here */

Uwaga: aby pobrać listę woluminów „Moja biblioteka”, użytkownik musi być uwierzytelniony. Dlatego wraz z żądaniem GET musisz podać nagłówek HTTP Authorization.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie, przesyłając kod stanu HTTP 200 OK i listę woluminów półek:

200 OK

{
 "kind": "books#volumes",
 "items": [
  {
   "kind": "books#volume",
   "id": "AZ5J6B1-4BoC",
   "etag": "kIzQA7IUObk",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/AZ5J6B1-4BoC",
   "volumeInfo": {
    "title": "The Girl Who Kicked the Hornet's Nest",
    "authors": [
     "Stieg Larsson"
    ],
    "publisher": "Knopf",
    "publishedDate": "2010-05-25",
    ...
  },
  {
   "kind": "books#volume",
   "id": "UvK1Slvkz3MC",
   "etag": "otKmdbRgdFQ",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/UvK1Slvkz3MC",
   "volumeInfo": {
    "title": "The Girl who Played with Fire",
    "authors": [
     "Stieg Larsson"
    ],
    "publisher": "Knopf",
    "publishedDate": "2009-07-28",
    ...
  },
  {
   "kind": "books#volume",
   "id": "OBM3AAAAIAAJ",
   "etag": "xb47kTr8HsQ",
   "selfLink": "https://www.googleapis.com/books/v1/volumes/OBM3AAAAIAAJ",
   "volumeInfo": {
    "title": "The Sign of Four",
    "authors": [
     "Sir Arthur Conan Doyle"
    ],
    "publishedDate": "1890",
    ...
  }
 ],
 "totalItems": 3
}

Opcjonalne parametry zapytania

Oprócz standardowych parametrów zapytania możesz użyć poniższego parametru zapytania podczas pobierania listy tomów z jednej z półek na książki uwierzytelnionego użytkownika.

Podział na strony

Listę woluminów możesz podzielić na strony, określając 2 wartości w parametrach żądania:

  • startIndex – pozycja w kolekcji, od której ma się rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Wartością domyślną jest 10.

Dodaję tom do mojej półki na książki

Aby dodać wolumin do półki uwierzytelnionego użytkownika, wyślij do identyfikatora URI żądanie HTTP POST w tym formacie:

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

Zastąp parametr ścieżki półki identyfikatorem półki. Więcej informacji o identyfikatorach półki na książki znajdziesz w sekcji Identyfikatory Książek Google.

Żądanie zawiera jeden wymagany parametr zapytania:

Prośba

Oto przykład dodania etykiety „Kwiaty dla Algernon” do półki „Ulubione”:

POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/addVolume?volumeId=NRWlitmahXkC&key=yourAPIKey
Authorization: /* auth token here */
Content-Type: application/json
Content-Length: CONTENT_LENGTH

Uwaga: aby zmodyfikować półkę na książki, użytkownik musi być uwierzytelniony, dlatego wraz z żądaniem POST musisz dostarczyć nagłówek HTTP Authorization. W przypadku tego parametru POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie, przesyłając kod stanu HTTP 204 No Content.

Opcjonalne parametry zapytania

Podczas dodawania woluminu do jednej z półek na książki uwierzytelnionego użytkownika możesz użyć standardowych parametrów zapytania.

Usuwanie tomu z półki

Aby usunąć wolumin z półki uwierzytelnionego użytkownika, wyślij żądanie HTTP POST do identyfikatora URI w tym formacie:

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

Zastąp parametr ścieżki półki identyfikatorem półki. Więcej informacji o identyfikatorach półki na książki znajdziesz w sekcji Identyfikatory Książek Google.

Żądanie zawiera jeden wymagany parametr zapytania:

Prośba

Oto przykład usunięcia napisu „Kwiaty dla Algernon” z półki „Ulubione”:

POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/removeVolume?volumeId=NRWlitmahXkC&key=yourAPIKey
Authorization: /* auth token here */
Content-Type: application/json
Content-Length: CONTENT_LENGTH

Uwaga: aby zmodyfikować półkę na książki, użytkownik musi być uwierzytelniony, dlatego wraz z żądaniem POST musisz dostarczyć nagłówek HTTP Authorization. W przypadku tego parametru POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie kodem stanu 204 No Content.

Opcjonalne parametry zapytania

Podczas usuwania woluminu z jednej z półek na książki uwierzytelnionego użytkownika możesz użyć standardowych parametrów zapytania.

Usuwanie wszystkich tomów z półki

Aby usunąć wszystkie woluminy z półki uwierzytelnionego użytkownika, wyślij żądanie HTTP POST do identyfikatora URI w następującym formacie:

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

Zastąp parametr ścieżki półki identyfikatorem półki. Więcej informacji o identyfikatorach półki na książki znajdziesz w sekcji Identyfikatory Książek Google.

Prośba

Oto przykład czyszczenia półki „Ulubione”:

POST https://www.googleapis.com/books/v1/mylibrary/bookshelves/0/clearVolumes?key=yourAPIKey
Authorization: /* auth token here */
Content-Type: application/json
Content-Length: CONTENT_LENGTH
  

Uwaga: aby zmodyfikować półkę na książki, użytkownik musi być uwierzytelniony, dlatego wraz z żądaniem POST musisz dostarczyć nagłówek HTTP Authorization. W przypadku tego parametru POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowie kodem stanu 204 No Content.

Opcjonalne parametry zapytania

Podczas czyszczenia wszystkich woluminów z jednej z półek na książki uwierzytelnionego użytkownika możesz użyć standardowych parametrów zapytania.

Dokumentacja parametrów zapytania

W tej sekcji podsumowaliśmy parametry zapytania, których możesz używać w interfejsie Books API.Wszystkie wartości parametrów muszą być zakodowane na potrzeby adresu URL.

Standardowe parametry zapytania

Parametry zapytania, które mają zastosowanie do wszystkich operacji interfejsu Books API, są wymienione w sekcji Parametry systemowe.

Parametry zapytania specyficzne dla interfejsu API

W tabeli poniżej podsumowaliśmy parametry żądań, które mają zastosowanie tylko do konkretnych operacji w interfejsie Books API.

Parametr Znaczenie Notatki Obowiązywanie
download Ogranicz do woluminów według dostępności pobierania.
  • Obecnie jedyną obsługiwaną wartością jest epub.
  • Dostęp do pobierania może wymagać zakupu.
filter Filtruj wyniki wyszukiwania według typu woluminu i dostępności.
  • Obsługiwane filtry:
    • filter=partial – ogranicz wyniki do woluminów, w których co najmniej część tekstu można podejrzeć.
    • filter=full – ogranicz wyniki do woluminów, w których cały tekst jest widoczny.
    • filter=free-ebooks – ogranicz wyniki do bezpłatnych e-booków Google.
    • filter=paid-ebooks – ogranicz wyniki do e-booków Google z ceną zakupu.
    • filter=ebooks – ogranicz wyniki do e-booków Google, płatnych lub bezpłatnych treści.Przykładami treści innych niż e-booki mogą być treści wydawcy dostępne w ograniczonej wersji przedpremierowej, a nie w sprzedaży, lub czasopisma.

 

langRestrict Ogranicza woluminy zwrócone do tych, które zostały oznaczone tagiem w wybranym języku.
  • Ogranicz wyniki wyszukiwania do użytkowników posługujących się określonym językiem, podając w polu langRestrict dwuliterowy kod ISO-639-1, np. „en” lub „fr”.
maxResults Maksymalna liczba elementów do zwrócenia w odpowiedzi na to żądanie.
  • W przypadku dowolnego żądania dotyczącego wszystkich elementów w kolekcji wyniki możesz podzielić na strony, określając w parametrach żądania startIndex i maxResults.
  • Domyślnie: maxResults=10
  • Maksymalna dopuszczalna wartość: maxResults=40.
orderBy

Kolejność wyszukiwania według liczby.

  • Domyślnie żądanie wyszukiwania zwraca wyniki maxResults, przy czym maxResults to parametr używany do podziału na strony w kolejności uporządkowanej według najtrafniejszych elementów.
  • Możesz zmienić kolejność, ustawiając parametr orderBy na jedną z tych wartości:
    • orderBy=relevance – zwraca wyniki wyszukiwania w kolejności od najtrafniejszych do najmniejszych (wartość domyślna).
    • orderBy=newest – zwraca wyniki wyszukiwania w kolejności od najnowszej daty publikacji do najstarszej.
printType Ogranicz do książek lub czasopism.
  • Obsługiwane wartości to:
    • printType=all – zwraca wszystkie typy treści tomów (bez ograniczeń). Jest to ustawienie domyślne.
    • printType=books – zwraca tylko książki.
    • printType=magazines – zwraca tylko czasopisma.
projection Ogranicz informacje o woluminach zwracane do podzbioru pól.
  • Obsługiwane prognozy:
    • projection=full – zawiera wszystkie metadane woluminu (domyślnie).
    • projection=lite – obejmuje tylko temat metadanych dostępu i ilości treści.
q Pełny tekst zapytania.
  • Podczas tworzenia zapytania wymień wyszukiwane hasła rozdzielone znakiem „+” w formie q=term1+term2_term3. Możesz też rozdzielić je spacją, ale tak jak w przypadku wszystkich wartości parametrów zapytania, spacje muszą być zakodowane na potrzeby adresu URL. Interfejs API zwraca wszystkie wpisy, które pasują do wszystkich wyszukiwanych haseł (np. użycie operatora I między hasłami). Podobnie jak w przypadku wyszukiwarki Google, interfejs API wyszukuje pełne słowa (i powiązane słowa z tym samym rdzeniem), a nie podłańcuchy.
  • Aby wyszukać dokładne wyrażenie, umieść je w cudzysłowie: q="exact phrase".
  • Aby wykluczyć wpisy, które pasują do danego hasła, użyj formularza q=-term.
  • Wielkość liter w wyszukiwanych hasłach nie jest rozróżniana.
  • Przykład: aby wyszukać wszystkie wpisy, które zawierają dokładnie wyrażenie "Elizabeth Bennet" i słowo "Darcy", ale nie zawierają słowa "Austen", użyj tej wartości parametru zapytania:
    q="Elizabeth+Bennet"+Darcy-Austen
  • W wyszukiwanych hasłach możesz określić specjalne słowa kluczowe (z uwzględnieniem wielkości liter), np.:
    • intitle: zwraca wyniki, w których tytuł zawiera tekst występujący po tym słowie kluczowym.
    • inauthor: zwraca wyniki, w przypadku których autor występuje w przypadku znalezienia tekstu następującego po tym słowie kluczowym.
    • inpublisher: zwraca wyniki, w przypadku których wydawca został znaleziony po tym słowie kluczowym.
    • subject: zwraca wyniki, w których tekst występujący po słowie kluczowym znajduje się na liście kategorii woluminu.
    • isbn: zwraca wyniki, w których tekst następujący po słowie kluczowym jest numerem ISBN.
    • lccn: zwraca wyniki, w których tekst występujący po tym słowie kluczowym to numer Biblioteki Kongresu Stanów Zjednoczonych.
    • oclc: zwraca wyniki, w których tekst po tym słowie kluczowym to numer Online Computer Library Center.
startIndex Pozycja w kolekcji, od której ma się zaczynać lista wyników.
  • W przypadku dowolnego żądania dotyczącego wszystkich elementów w kolekcji wyniki można podzielić na strony, określając w parametrach żądania startIndex i maxResults.
  • Indeks pierwszego elementu wynosi 0.
volumeId Identyfikuje wolumin powiązany z żądaniem.
  • Określa wolumin, który ma zostać dodany do półki lub usunięty z niej.