Korzystanie z interfejsu API

Spis treści

Wprowadzenie

Ten dokument jest przeznaczony dla programistów, którzy chcą tworzyć aplikacje mogące korzystać z interfejsu API Książek. Książki Google zakładają digitalizację treści książek z całego świata i zwiększają ich widoczność w internecie. Książki API umożliwiają wyszukiwanie i dostęp do tych treści oraz tworzenie i personalizację tych treści.

Jeśli nie znasz się na pojęciach z Książek Google, najpierw przeczytaj artykuł Pierwsze kroki.

Autoryzacja żądań i identyfikacja aplikacji

Każde żądanie wysyłane do aplikacji przez aplikację Books API musi identyfikować Twoją aplikację w Google. Istnieją 2 sposoby identyfikowania aplikacji: użycie tokenu OAuth 2.0 (który dodatkowo autoryzuje żądanie) i klucza interfejsu API aplikacji. Jak określić, których z tych opcji użyć:

  • Jeśli żądanie wymaga autoryzacji (na przykład żądania prywatnych danych konkretnej osoby), aplikacja musi udostępnić token OAuth 2.0. Aplikacja może również udostępnić klucz interfejsu API, ale nie musi.
  • Jeśli żądanie nie wymaga autoryzacji (na przykład żądania danych publicznych), aplikacja musi udostępnić klucz interfejsu API lub token OAuth 2.0 (bądź oba z tych rozwiązań) według własnego uznania.

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 do interfejsu Books API dotyczące niepublicznych danych użytkownika 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.

Informacje o zakresie 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

Żądaniem publicznym interfejsu Books API o dostęp do danych publicznych musi towarzyszyć identyfikator, który może być kluczem interfejsu API lub tokenem dostępu.

Aby uzyskać klucz interfejsu API:

  1. Otwórz stronę Dane logowania w konsoli interfejsu API.
  2. Ten interfejs API obsługuje 2 typy danych logowania. Utwórz odpowiednie dane logowania do swojego projektu:
    • OAuth 2.0: gdy aplikacja żąda prywatnych danych użytkownika, musi wraz z żądaniem wysłać token OAuth 2.0. Aplikacja najpierw wysyła identyfikator klienta, a być może także klucz klienta, aby uzyskać token. Możesz wygenerować dane logowania OAuth 2.0 dla aplikacji internetowych, kont usługi lub zainstalowanych aplikacji.

      Więcej informacji znajdziesz w dokumentacji OAuth 2.0.

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

      Interfejs API obsługuje kilka typów ograniczeń dotyczących kluczy interfejsu API. Jeśli klucz interfejsu API, którego potrzebujesz, nie istnieje, utwórz klucz interfejsu API w konsoli, klikając Utwórz dane logowania i klucz interfejsu API. Możesz ograniczyć klucz przed użyciem go w środowisku produkcyjnym, klikając Ogranicz klucz i wybierając jedno z ograniczeń.

Aby zapewnić bezpieczeństwo kluczy API, postępuj zgodnie ze sprawdzonymi metodami korzystania z kluczy interfejsu API.

Gdy uzyskasz klucz interfejsu API, 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

Musisz określić pola identyfikatorów z określonymi wywołaniami metody interfejsu API. W Książkach Google są 3 rodzaje identyfikatorów:

  • Identyfikatory woluminów – unikalne ciągi nadane każdemu znanemu numerowi Książek Google. Przykład identyfikatora woluminu to _LettPDhwR0C. Identyfikator API możesz uzyskać za pomocą interfejsu API, wysyłając żądanie zwracające zasób woluminu. Identyfikator woluminu znajdziesz w polu id.
  • Identyfikatory półki – wartości numeryczne przyznawane półki na książki w bibliotece użytkownika. Google udostępnia kilka wstępnie zdefiniowanych półek dla każdego użytkownika o tych identyfikatorach:
    • Ulubione: 0
    • Kupione: 1
    • Do przeczytania: 2
    • Czytaj teraz: 3
    • Odczyt: 4
    • Ocena: 5
    • Ostatnio wyświetlane: 6
    • Moje e-booki: 7
    • Książki dla Ciebie: 8 Jeśli nie mamy rekomendacji dla użytkownika, ta półka nie istnieje.
    Półki niestandardowe mają identyfikatory większe niż 1000. Identyfikator półki na książki ma unikalny użytkownik. Oznacza to, że 2 użytkowników może korzystać z półki z tym samym identyfikatorem, który odnosi się do różnych półek. Interfejs API może uzyskać ten identyfikator, wysyłając żądanie zwracające zasób półki z książkami. Identyfikator znajdziesz w polu id.
  • Identyfikatory użytkowników – niepowtarzalne wartości numeryczne przypisane do każdego użytkownika. Wartości te nie muszą być takie same jak te używane w innych usługach Google. Obecnie jedynym sposobem pobrania identyfikatora użytkownika jest wyodrębnienie go z atrybutu link samodzielny w zasobie Bookshelf pobranym za pomocą uwierzytelnionego żądania. Użytkownicy mogą też uzyskać własnego identyfikatora ze strony Książki. Użytkownik nie może uzyskać identyfikatora użytkownika innego użytkownika przez interfejs API lub stronę Książek, a następnie musi udostępnić te informacje e-mailem.

Identyfikatory w witrynie Książki Google

Identyfikatory używane z interfejsem Books API są takie same jak te na stronie Książki Google.

  • Identyfikator woluminu

    Gdy wyświetlasz konkretny wolumin w witrynie, 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

    Jeśli wyświetlasz konkretną półkę na stronie, jej identyfikator znajduje się w parametrze 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

    Podczas przeglądania biblioteki w witrynie identyfikator użytkownika znajdziesz w parametrze uid. Oto przykład:

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

Ustawianie lokalizacji użytkownika

W Książkach Google obowiązują prawa autorskie, umowy i inne ograniczenia prawne związane z lokalizacją użytkownika. W rezultacie 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 są „wyłącznie dostępne do podglądu” w Stanach Zjednoczonych. Takie linki pomijamy w przypadku użytkowników z innych krajów. Dlatego wyniki interfejsu API są ograniczone przez adres IP serwera lub aplikacji klienckiej.

Praca z woluminami

Przeprowadzanie wyszukiwania

Możesz przeprowadzić wyszukiwanie woluminów, wysyłając żądanie HTTP GET do tego identyfikatora URI:

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

To żądanie zawiera 1 wymagany parametr:

  • q – wyszukaj woluminy zawierające ten ciąg tekstowy. W wyszukiwanych hasłach można używać specjalnych słów kluczowych, takich jak:
    • intitle: Zwraca wyniki, w których tekst po tym słowie kluczowym występuje w tytule.
    • inauthor: Zwraca wyniki, w przypadku których znaleziono po tekście słowo kluczowe.
    • inpublisher: Zwraca wyniki, w przypadku których tekst po słowie kluczowym został znaleziony w wydawcy.
    • subject: Zwraca wyniki, w których tekst po tym słowie kluczowym jest widoczny na liście kategorii woluminu.
    • isbn: Zwraca wyniki, w których tekst po słowie kluczowym to numer ISBN.
    • lccn: Zwraca wyniki, w których tekst występujący po tym słowie kluczowym to numer Biblioteki Kongresu.
    • oclc: Zwraca wyniki, w przypadku których tekst po tym słowie kluczowym to numer online Computer Library Center.

Żądanie

Oto przykład wyszukiwania Daniela Keyesa & „Kwiaty dla Algernon”:

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

Uwaga: wyszukiwanie nie wymaga uwierzytelniania, dlatego nie musisz podawać nagłówka HTTP Authorization w żądaniu GET. Jeśli jednak połączenie zostanie wykonane z wykorzystaniem uwierzytelniania, każdy wolumin będzie zawierał informacje związane z użytkownikiem, takie jak stan zakupu.

Odpowiedź

Jeśli żądanie się powiedzie, serwer wyśle kod stanu HTTP 200 OK i otrzyma wyniki:

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ć tych parametrów zapytania.

Format pobierania

Parametr download pozwala ograniczyć wyświetlane wyniki do woluminów, które mają dostępny format pobierania epub, ustawiając na wartość epub.

Oto przykłady wyszukiwania książek, które można pobrać z EPUB:

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

Możesz użyć parametru filter, aby dodatkowo zawęzić zwracane wyniki, ustawiając jedną z tych wartości:

  • partial – zwraca wyniki, w przypadku których można wyświetlić podgląd co najmniej części tekstu.
  • full – zwraca tylko wyniki, w których widoczny jest cały tekst.
  • free-ebooks – zwraca tylko wyniki, które są bezpłatnymi e-bookami Google.
  • paid-ebooks – zwraca tylko wyniki z e-bookami Google z ceną.
  • ebooks – zwraca tylko wyniki, które są e-bookami Google, płatnymi lub bezpłatnymi. Mogą to być na przykład treści wydawców, które są dostępne w wersji przedpremierowej, ale nie są dostępne w sprzedaży, albo czasopisma.

Poniższy 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

Możesz podzielić listę woluminów, określając 2 wartości w żądaniu:

  • startIndex – pozycja w kolekcji, od której należy rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Wartością domyślną jest 10, a maksymalna dozwolona wartość to 40.

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

  • all – nie ogranicza się według typu drukowania (domyślnie).
  • books – zwraca tylko wyniki, które są książkami.
  • magazines – zwraca wyniki w postaci czasopism.

Ten przykład ogranicza wyniki wyszukiwania do czasopism:

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

Możesz użyć parametru projection z jedną z tych wartości, aby określić wstępnie zdefiniowany zestaw pól woluminu:

  • full – zwraca wszystkie pola woluminu.
  • lite – zwraca tylko niektóre pola. Opisy pól znajdziesz w podwójnych gwiazdkach.

Przykład poniżej pokazuje wyniki wyszukiwania z ograniczoną liczbą informacji:

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

Domyślnie żądanie wyszukiwania dotyczące woluminu zwraca wynik maxResults, gdzie maxResults to parametr używany w podziale na strony (powyżej), uporządkowany według trafności.

Kolejność możesz zmienić, ustawiając parametr orderBy jako jedną z tych wartości:

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

Poniższy przykład zawiera listę wyników według daty opublikowania: od najnowszego do najstarszego.

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

Pobieram określoną głośność

Informacje o określonej woluminie możesz 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, który chcesz pobrać. Więcej informacji o identyfikatorach woluminu znajdziesz w sekcji o identyfikatorach Książek Google.

Żądanie

Oto przykład żądania GET, które otrzymuje pojedynczy wolumin:

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

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

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer wyśle 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

W szczególności chodzi o sekcję funkcji accessInfo dostępnych w przypadku e-booków. epub to e-book w formie tekstu ciągłego, a w sekcji epub właściwość isAvailable określa, czy jest on dostępny. Zawiera ona link do pobrania książki, jeśli istnieje jej próbka lub użytkownik może ją przeczytać ze względu na zakup w lokalizacji użytkownika lub w domenie publicznej. pdf w przypadku książek Google wskazuje zeskanowaną wersję e-booka z podobnymi informacjami, np. czy jest on dostępny i link do pobrania. Google zaleca korzystanie z plików epub w przypadku czytników e-booków i smartfonów, 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 użyć poniższego parametru zapytania, aby pobrać konkretną liczbę zapytań.

Prognoza

Możesz użyć parametru projection z jedną z tych wartości, aby określić wstępnie zdefiniowany zestaw pól woluminu:

  • full – zwraca wszystkie pola woluminu.
  • lite – zwraca tylko niektóre pola. Opisy pól znajdziesz w podwójnych gwiazdkach.

Ten przykład zwraca informacje o ograniczonym woluminie dla pojedynczego woluminu:

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 użytkownika

Możesz pobrać listę publicznych półek użytkownika, wysyłając żądanie HTTP o identyfikatorze 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 chcesz pobrać. Identyfikatory użytkowników znajdziesz w sekcji Identyfikatory Książek Google.

Żądanie

Oto przykład.

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

Ponieważ użytkownik nie musi uwierzytelniać się, aby uzyskać informacje dotyczące publicznych półek, nie musisz podawać nagłówka HTTP Authorization w żądaniu GET.

Odpowiedź

Jeśli żądanie się powiedzie, serwer wyśle kod stanu HTTP 200 OK i listę półek:

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 użytkownika możesz użyć standardowych parametrów zapytania.

Pobieram określoną publiczną półkę

Konkretną publiczną półkę na książki możesz pobrać, wysyłając żądanie HTTP GET do identyfikatora URI w formacie:

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

Zastąp parametry ścieżki userId i półka identyfikatorami dotyczącymi konta użytkownika i półki, którą chcesz pobrać. Więcej informacji znajdziesz w sekcji o identyfikatorach Książek Google.

Żądanie

Oto przykład.

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

Ponieważ użytkownik nie musi uwierzytelniać się, aby uzyskać informacje dotyczące publicznych półek, nie musisz podawać nagłówka HTTP Authorization w żądaniu GET.

Odpowiedź

Jeśli żądanie się powiedzie, serwer wyśle kod stanu HTTP 200 OK i zasoby z 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

Jeśli pobierasz konkretną półkę na książki, możesz użyć standardowych parametrów zapytania.

Pobieram listę tomów na publicznej półce

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

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

Żądanie

Oto przykład.

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

Zastąp parametry ścieżki userId i półka identyfikatorami dotyczącymi konta użytkownika i półki, którą chcesz pobrać. Więcej informacji znajdziesz w sekcji o identyfikatorach Książek Google.

Ponieważ użytkownik nie musi uwierzytelniać się, aby uzyskać informacje dotyczące publicznych półek, nie musisz podawać nagłówka HTTP Authorization w żądaniu GET.

Odpowiedź

Jeśli żądanie się powiedzie, serwer wyśle kod stanu HTTP 200 OK i listę półek 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ć tego parametru zapytania podczas pobierania listy tomów na publicznej półce.

Podział na strony

Możesz podzielić listę woluminów, określając 2 wartości w żądaniu:

  • startIndex – pozycja w kolekcji, od której należy rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Wartością domyślną jest 10, a maksymalna dozwolona wartość to 40.

Praca z półkami w sekcji „Moja biblioteka”

Wszystkie żądania &Mojej biblioteki mają zastosowanie do danych uwierzytelnionego użytkownika.

Pobieranie listy moich półek na książki

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

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

Żądanie

Oto przykład.

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

Uwaga: użytkownik musi być uwierzytelniony, aby pobrać listę „Półek z książkami”. Musisz więc podać nagłówek HTTP Authorization z żądaniem GET.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer wyśle kod stanu HTTP 200 OK oraz listę wszystkich półek na bieżące konto 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 uwierzytelnionych półek użytkownika możesz użyć standardowych parametrów zapytania.

Pobieram listę tomów na mojej półce

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

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

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

Żądanie

Oto przykład.

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

Uwaga: użytkownik musi być uwierzytelniony, aby pobrać listę woluminów &Mojej biblioteki. Musisz więc podać nagłówek HTTP Authorization z żądaniem GET.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer odpowiada kodem stanu HTTP 200 OK i listą woluminów półki:

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żywać tego parametru zapytania podczas pobierania listy tomów na jednej z uwierzytelnionych półek użytkownika.

Podział na strony

Możesz podzielić listę woluminów, określając 2 wartości w żądaniu:

  • startIndex – pozycja w kolekcji, od której należy rozpocząć. Indeks pierwszego elementu wynosi 0.
  • maxResults – maksymalna liczba wyników do zwrócenia. Domyślna wartość to 10.

Dodaję wolumin do mojej półki

Aby dodać wolumin do uwierzytelnionej półki użytkownika, wyślij żądanie HTTP POST do identyfikatora URI w następującym formacie:

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

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

Żądanie zawiera 1 wymagany parametr zapytania:

Żądanie

Oto przykład dodania kwiaty dla Algernon &"Ulubione do półki:

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: użytkownik musi być uwierzytelniony, aby móc modyfikować półkę na książki, więc musisz udostępnić nagłówek HTTP Authorization z żądaniem POST. W przypadku tego elementu POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie się powiedzie, serwer wyśle kod stanu HTTP 204 No Content.

Opcjonalne parametry zapytania

Gdy dodajesz wolumin do jednej z uwierzytelnionych półek użytkownika, możesz użyć standardowych parametrów zapytania.

Usuwanie woluminu z mojej półki

Aby usunąć wolumin z półki z uwierzytelnionym użytkownikiem, wyślij protokół HTTP POST do identyfikatora URI w następującym formacie:

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

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

Żądanie zawiera 1 wymagany parametr zapytania:

Żądanie

Oto przykład, aby usunąć kwiaty dla algernona z półki „Ulubione” na półce:

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: użytkownik musi być uwierzytelniony, aby móc modyfikować półkę na książki, więc musisz udostępnić nagłówek HTTP Authorization z żądaniem POST. W przypadku tego elementu POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer wyśle kod stanu 204 No Content.

Opcjonalne parametry zapytania

Gdy usuwasz wolumin z jednej z zweryfikowanych półek użytkownika, możesz użyć standardowych parametrów zapytania.

Czyszczenie wszystkich tomów z mojej 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ółka identyfikatorem półki na książki. Więcej informacji o identyfikatorach półki na książki znajdziesz w sekcji Identyfikatory Książek Google.

Żądanie

Oto przykład, w jaki można wyczyścić półkę „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: użytkownik musi być uwierzytelniony, aby móc modyfikować półkę na książki, więc musisz udostępnić nagłówek HTTP Authorization z żądaniem POST. W przypadku tego elementu POST nie są jednak wymagane żadne dane.

Odpowiedź

Jeśli żądanie zostanie zrealizowane, serwer wyśle kod stanu 204 No Content.

Opcjonalne parametry zapytania

Jeśli chcesz usunąć wszystkie woluminy z jednej z półek uwierzytelnionych użytkowników, możesz użyć standardowych parametrów zapytania.

Odwołanie do parametru zapytania

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

Standardowe parametry zapytania

Parametry zapytania, które mają zastosowanie do wszystkich operacji w interfejsie Books API, są wymienione w Parametrach systemowych.

Parametry zapytania dotyczące interfejsu API

W poniższej tabeli omówiono parametry żądania dotyczące tylko konkretnych operacji w interfejsie Books API.

Parametr Znaczenie Uwagi Obowiązywanie
download Ogranicz do woluminów według dostępności pobierania.
  • Jedyną obsługiwaną wartością jest obecnie epub.
  • Dostęp do pobranych plików może być konieczny w przypadku 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 można wyświetlić podgląd co najmniej części tekstu.
    • filter=full – ogranicza wyniki do woluminów, w których widoczny jest cały tekst.
    • filter=free-ebooks – ograniczaj wyniki do bezpłatnych e-booków Google.
    • filter=paid-ebooks – ograniczaj wyniki do e-booków Google z ceną zakupu.
    • filter=ebooks – ograniczaj wyniki do e-booków Google, płatnych lub bezpłatnych.Przykładami treści innych niż e-booki są treści wydawców, które są dostępne w wersji przedpremierowej, a nie na sprzedaż, lub czasopisma.

 

langRestrict Ogranicza woluminy wyświetlane do woluminów otagowanych w danym języku.
  • Ogranicz wyniki wyszukiwania do osób, które mają określony język, podając langRestrict w dwuliterowym kodzie ISO-639-1, takim jak "en" lub "fr".
maxResults Maksymalna liczba elementów, które zostaną zwrócone z tym żądaniem.
  • W przypadku wszystkich elementów kolekcji możesz podzielić wyniki na strony, podając w parametrach startIndex i maxResults.
  • Domyślny: maxResults=10
  • Maksymalna dozwolona wartość: maxResults=40.
orderBy

Kolejność wyników wyszukiwania woluminów.

  • Domyślnie żądanie wyszukiwania zwraca wyniki w formacie maxResults, gdzie maxResults to parametr używany w podziale na strony, uporządkowanych według trafności.
  • Kolejność możesz zmienić, ustawiając parametr orderBy na jedną z tych wartości:
    • orderBy=relevance – zwraca wyniki wyszukiwania w kolejności od najbardziej trafnych do najniższych (jest to wartość domyślna).
    • orderBy=newest – zwraca wyniki wyszukiwania w kolejności od ostatniej opublikowanej do najstarszej.
printType Ogranicz do książek lub czasopism.
  • Obsługiwane wartości to:
    • printType=all – zwraca wszystkie typy treści woluminu (bez ograniczeń). (jest to ustawienie domyślne)
    • printType=books – zwrócone tylko książki.
    • printType=magazines – zwracaj tylko czasopisma.
projection Ogranicz informacje o woluminach zwrócone do podzbioru pól.
  • Obsługiwane prognozy to:
    • projection=full – obejmuje wszystkie metadane woluminu (domyślnie).
    • projection=lite – uwzględnia tylko temat metadanych woluminu i dostępu.
q Pełny tekst zapytania.
  • Podczas tworzenia zapytania podaj listę wyszukiwanych haseł oddzielonych znakami '+' w formie q=term1+term2_term3. Możesz też oddzielić 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 pasujące do wszystkich wyszukiwanych haseł (na przykład używając operatora AND). Podobnie jak w przypadku wyszukiwarki Google, interfejs API wyszukuje całe słowa (i powiązane słowa z tym samym rdzeń), a nie podłańcuchy.
  • Aby wyszukać dokładną frazę, umieść ją w cudzysłowie: q="exact phrase".
  • Aby wykluczyć wpisy pasujące do danego hasła, użyj formularza q=-term.
  • Wielkość liter w wyszukiwanych hasłach nie jest rozróżniana.
  • Przykład: aby znaleźć wszystkie wpisy zawierające dokładnie to 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żna używać specjalnych słów kluczowych (z rozróżnianiem wielkości liter), takich jak:
    • intitle: zwraca wyniki, w których tekście po słowie kluczowym znaleziono tekst.
    • inauthor: wyświetla wyniki, w których przypadku po tekście słowa kluczowego znaleziono autor.
    • inpublisher: zwraca wyniki, gdy wydawca znajduje tekst występujący po tym słowie kluczowym.
    • subject: zwraca wyniki, gdy tekst po słowie kluczowym jest na liście kategorii tomu.
    • isbn: zwraca wyniki, w których tekst po słowie kluczowym to numer ISBN.
    • lccn: zwraca wyniki, w których tekst po słowie kluczowym to numer Biblioteki Kongresu.
    • oclc: zwraca wyniki, w których tekst po słowie kluczowym to numer online Computer Library Center.
startIndex Pozycja w kolekcji, w której należy rozpocząć listę wyników.
  • W przypadku wszystkich elementów kolekcji możesz podzielić wyniki na strony, podając w parametrach 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 z niego usunięty.