API'yi kullanma

İçindekiler

Giriş

Bu belge, Books API ile etkileşimde bulunabilecek uygulamalar yazmak isteyen geliştiriciler için hazırlanmıştır. Google Kitaplar'ın misyonu, dünyadaki kitap içeriklerini dijitalleştirmek ve Web'de daha kolay bulunabilir hale getirmektir. Books API, hem içerikte arama yapma ve içeriğe erişmenin hem de bu içerikleri kullanarak içerik oluşturma ve kişiselleştirmenin bir yoludur.

Google Kitaplar kavramlarına aşina değilseniz kod yazmaya başlamadan önce Başlarken makalesini okumanız gerekir.

İstekleri yetkilendirme ve başvurunuzu tanımlama

Uygulamanızın Books API'ye gönderdiği her isteğin Google'a uygulamanızı tanımlaması gerekir. Uygulamanızı tanımlamanın iki yolu vardır: OAuth 2.0 jetonu (isteği yetkilendiren) kullanma ve/veya uygulamanın API anahtarını kullanma. Bu seçeneklerden hangisinin kullanılacağını belirlemek için:

  • İstek için yetkilendirme gerekiyorsa (bireysel özel veriler için istek gibi) uygulama, istekle birlikte bir OAuth 2.0 jetonu sağlamalıdır. Uygulama, API anahtarını da sağlayabilir ancak bunu yapmak zorunda değildir.
  • İstek yetkilendirme gerektirmiyorsa (herkese açık veri isteği gibi) uygulama API anahtarını, OAuth 2.0 jetonunu veya her ikisini birden sağlamalıdır. Size en uygun seçenek hangisi olursa olsun uygulama kullanılmalıdır.

Yetkilendirme protokolleri hakkında

Uygulamanız, istekleri yetkilendirmek için OAuth 2.0 kullanmalıdır. Başka hiçbir yetkilendirme protokolü desteklenmez. Uygulamanız Google ile Oturum Açma işlevini kullanırsa yetkilendirme işleminin bazı kısımları sizin için gerçekleştirilir.

OAuth 2.0 kullanarak istekleri yetkilendirme

Herkese açık olmayan kullanıcı verileri için Books API'ye yapılan istekler, kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmelidir.

OAuth 2.0 ile yetkilendirme işleminin ("akış") ayrıntıları, yazdığınız uygulamanın türüne bağlı olarak değişiklik gösterir. Aşağıdaki genel işlem tüm uygulama türleri için geçerlidir:

  1. Uygulamanızı oluştururken Google API Konsolu'nu kullanarak kaydedersiniz. Ardından Google, daha sonra ihtiyaç duyacağınız bilgiler (ör. istemci kimliği ve istemci gizli anahtarı) sağlar.
  2. Google API Konsolu'nda Books API'yi etkinleştirin. (API, API Konsolu'nda listelenmemişse bu adımı atlayın.)
  3. Uygulamanız kullanıcı verilerine erişmesi gerektiğinde Google'dan belirli bir erişim kapsamı ister.
  4. Google, kullanıcıya uygulamanızı kullanıcının verilerinden bazılarını istemeye yetkilendirmesi için bir onay ekranı gösterir.
  5. Kullanıcı onaylarsa Google, uygulamanıza kısa süreli bir erişim jetonu verir.
  6. Uygulamanız, erişim jetonunu isteğe ekleyerek kullanıcı verileri için istekte bulunur.
  7. Google, isteğinizin ve jetonun geçerli olduğuna kanaat getirirse istenen verileri döndürür.

Bazı akışlarda başka adımlar da yer alır. Örneğin, yeni erişim jetonları almak için yenileme jetonları kullanmak. Farklı uygulama türlerine yönelik akışlar hakkında ayrıntılı bilgi için Google'ın OAuth 2.0 dokümanlarına bakın.

Books API için OAuth 2.0 kapsam bilgileri şöyledir:

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

Uygulamanızın OAuth 2.0 kullanarak erişim isteğinde bulunabilmesi için hem kapsam bilgilerine hem de uygulamanızı kaydederken Google tarafından sağlanan bilgilere (ör. istemci kimliği ve istemci gizli anahtarı) ihtiyacı vardır.

İpucu: Google API'leri istemci kitaplıkları, yetkilendirme işleminin bazı adımlarını sizin yerinize gerçekleştirebilir. Bu kitaplıklar çeşitli programlama dilleri için kullanıma sunulmuştur. Ayrıntılar için kitaplıkların ve örneklerin bulunduğu sayfayı inceleyin.

API anahtarı edinme ve kullanma

Herkese açık veriler için Books API'ye yapılan isteklere API anahtarı veya erişim jetonu olabilecek bir tanımlayıcı eşlik etmelidir.

API anahtarı almak için:

  1. API Konsolu'nda Kimlik bilgileri sayfası'nı açın.
  2. Bu API iki tür kimlik bilgisini destekler. Projeniz için uygun kimlik bilgilerini oluşturun:
    • OAuth 2.0: Uygulamanız gizli kullanıcı verileri istediğinde, istekle birlikte bir OAuth 2.0 jetonu göndermelidir. Uygulamanız, önce jeton almak için bir istemci kimliği ve muhtemelen bir istemci gizli anahtarı gönderir. Web uygulamaları, hizmet hesapları veya yüklü uygulamalar için OAuth 2.0 kimlik bilgileri oluşturabilirsiniz.

      Daha fazla bilgi için OAuth 2.0 dokümanlarına bakın.

    • API anahtarları: OAuth 2.0 jetonu sağlamayan bir istek API anahtarı göndermelidir. Anahtar, projenizi tanımlar ve API erişimi, kotası ve raporları sağlar.

      API, API anahtarlarıyla ilgili çeşitli kısıtlama türlerini destekler. İhtiyacınız olan API anahtarı henüz mevcut değilse Kimlik bilgisi oluştur > API anahtarı'nı tıklayarak Console'da bir API anahtarı oluşturun. Anahtarı, üretimde kullanmadan önce Anahtarı kısıtla'yı tıklayıp Kısıtlamalar'dan birini seçerek kısıtlayabilirsiniz.

API anahtarlarınızı güvende tutmak için API anahtarlarını güvenli bir şekilde kullanmakla ilgili en iyi uygulamaları takip edin.

Bir API anahtarınız olduktan sonra, uygulamanız key=yourAPIKey sorgu parametresini tüm istek URL'lerine ekleyebilir.

API anahtarı, URL'lere yerleştirmek için güvenlidir; herhangi bir kodlama yapmanız gerekmez.

Google Kitaplar Kimlikleri

Belirli API yöntemi çağrılarıyla kimlik alanları belirtmeniz gerekir. Google Kitaplar'da kullanılan üç kimlik türü vardır:

  • Hacim Kimlikleri: Google Kitaplar'ın bildiği her bir kitaba verilen benzersiz dizeler. _LettPDhwR0C kimlik hacmi örneği: Birim kaynağı döndüren bir istek yaparak hacim kimliğini almak için API'yi kullanabilirsiniz. Birim kimliğini, id alanında bulabilirsiniz.
  • Kitap Rafı Kimlikleri: Kullanıcı kitaplığındaki bir kitap rafına verilen sayısal değerler. Google, her kullanıcıya aşağıdaki kimliklere sahip önceden tanımlanmış bazı raflar sağlar:
    • Favoriler: 0
    • Satın alınan: 1
    • Okumak için: 2
    • Şimdi Okunan: 3
    • Okunan: 4
    • İncelendi: 5
    • Son Görüntülenenler: 6
    • e-Kitaplarım: 7
    • Sizin İçin Kitaplar: 8 Kullanıcı için önerimiz yoksa bu raf mevcut değildir.
    Özel rafların kimlikleri 1.000'den fazladır. Kitaplık kimliği belirli bir kullanıcı için benzersizdir; yani, iki kullanıcı farklı bir kitap rafına işaret eden, aynı kimliğe sahip bir kitap rafına sahip olabilir. Kitap Rafı kimliğini, Bookshelf kaynağı döndüren bir istekte bulunarak almak için API'yi kullanabilirsiniz. Kitaplık kimliğini id alanında bulabilirsiniz.
  • Kullanıcı Kimlikleri - Her bir kullanıcıya atanan benzersiz sayısal değerler. Bu değerler, diğer Google hizmetlerinde kullanılan kimlik numarası olmayabilir. Şu anda User-ID'yi almanın tek yolu, kimliği kimliği doğrulanmış bir istekle alınan Bookshelf kaynağındaki selfLink'ten almaktır. Kullanıcılar ayrıca Google Sites sitesinden kendi kullanıcı kimliklerini de alabilir. Kullanıcı, API veya Kitaplar sitesi üzerinden başka bir kullanıcının kullanıcı kimliğini alamaz. Örneğin, diğer kullanıcının bu bilgileri açık bir şekilde (ör. e-posta yoluyla) paylaşması gerekir.

Google Kitaplar sitesindeki kimlikler

Books API ile kullandığınız kimlikler, Google Kitaplar sitesinde kullanılan kimliklerle aynıdır.

  • Birim kimliği

    Sitedeki belirli bir hacmi görüntülerken hacim kimliğini id URL parametresinde bulabilirsiniz. Aşağıda bununla ilgili bir örnek verilmiştir:

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

  • Kitaplık kimliği

    Sitedeki belirli bir kitap rafını görüntülerken kitap rafı kimliğini as_coll URL parametresinde bulabilirsiniz. Aşağıda bununla ilgili bir örnek verilmiştir:

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

  • Kullanıcı Kimliği

    Kütüphanenizi sitede görüntülerken uid URL parametresinde kullanıcı kimliğini bulabilirsiniz. Aşağıda bununla ilgili bir örnek verilmiştir:

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

Kullanıcı Konumunu Ayarlama

Google Kitaplar, telif hakkı, sözleşme ve son kullanıcının konumuyla ilgili diğer yasal kısıtlamalara uyar. Bu nedenle, bazı kullanıcılar belirli ülkelerden kitap içeriğine erişemeyebilir. Örneğin, belirli kitaplar yalnızca ABD'de "önizleme" olabilir ve diğer ülkelerdeki kullanıcılar için bu tür önizleme bağlantılarını atlarız. Bu nedenle API sonuçları, sunucunuzun veya istemci uygulamanızın IP adresine göre kısıtlanır.

Hacimlerle çalışma

Arama yapma

Aşağıdaki URI'ye bir HTTP GET isteği göndererek birim araması yapabilirsiniz:

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

Bu istek için tek bir gerekli parametre vardır:

  • q - Bu metin dizesini içeren hacimleri arayın. Belirli alanlarda arama yapmak için arama terimlerinde belirtebileceğiniz özel anahtar kelimeler vardır. Örneğin:
    • intitle: Bu anahtar kelimeyi izleyen metnin başlıkta bulunduğu sonuçları döndürür.
    • inauthor: Bu anahtar kelimeyi izleyen metnin yazarda bulunduğu sonuçları döndürür.
    • inpublisher: Bu anahtar kelimeyi izleyen metnin, yayıncıda bulunduğu sonuçları döndürür.
    • subject: Bu anahtar kelimeyi izleyen metnin, hacmin kategori listesinde yer aldığı sonuçları döndürür.
    • isbn: Bu anahtar kelimeyi izleyen metnin ISBN numarası olduğu sonuçları döndürür.
    • lccn: Bu anahtar kelimeyi izleyen metnin, Kongre Kütüphanesi Kontrol Numarası olduğu sonuçları döndürür.
    • oclc: Bu anahtar kelimeyi izleyen metnin Çevrimiçi Bilgisayar Kitaplığı Merkezi numarası olduğu sonuçları döndürür.

İstek

Daniel Keyes' "Çiçekler İçin Algernon" aramasının bir örneğini burada bulabilirsiniz:

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

Not: Arama yapmak kimlik doğrulaması gerektirmez. Bu nedenle GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekmez. Ancak çağrı, kimlik doğrulama ile yapılmışsa her Ses Düzeyi, satın alma durumu gibi kullanıcıya özel bilgileri içerir.

Yanıt

İstek başarılı olursa, sunucu bir 200 OK HTTP durum kodu ile yanıt verir ve hacim şöyle olur:

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
}

İsteğe bağlı sorgu parametreleri

Standart sorgu parametrelerine ek olarak, bir hacim araması gerçekleştirirken aşağıdaki sorgu parametrelerini kullanabilirsiniz.

İndirme Biçimi

download parametresini, değerini epub olarak ayarlayarak döndürülen sonuçları epub indirme biçimine sahip hacimlerle kısıtlamak için kullanırsınız.

Aşağıdaki örnekte epub indirme özelliği olan kitaplar için arama yapılmaktadır:

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

Döndürülen sonuçları aşağıdaki değerlerden birine ayarlayarak daha fazla kısıtlama getirmek için filter parametresini kullanabilirsiniz:

  • partial: Metnin en az bir kısmının önizlenebilir olduğu sonuçları döndürür.
  • full: Yalnızca metnin tamamının görüntülenebilir olduğu sonuçları döndürür.
  • free-ebooks: Yalnızca ücretsiz Google e-Kitaplar olan sonuçları döndürür.
  • paid-ebooks - Yalnızca fiyatı olan Google e-Kitaplar olan sonuçları döndürür.
  • ebooks: Yalnızca ücretli veya ücretsiz Google e-Kitaplar olan sonuçları döndürür. E-Kitap olmayanlara örnek olarak sınırlı önizlemede sunulan ve satışa sunulmayan yayıncı içeriği veya dergiler verilebilir.

Aşağıdaki örnekte, arama sonuçları, ücretsiz e-Kitaplar olarak sunulanlarla kısıtlamaktadır:

GET https://www.googleapis.com/books/v1/volumes?q=flowers&filter=free-ebooks&key=yourAPIKey
Sayfalara ayırma

İstek parametrelerinde iki değer belirterek birim listesini sayfalara ayırabilirsiniz:

  • startIndex - Koleksiyonun başlatılacağı konum. İlk öğenin dizini 0'dır.
  • maxResults - Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10, izin verilen maksimum değer ise 40'tır.

Döndürülen sonuçları aşağıdaki değerlerden birine ayarlayarak belirli bir yazdırma veya yayın türüyle kısıtlamak için printType parametresini kullanabilirsiniz:

  • all - Yazdırma türüne göre kısıtlamaz (varsayılan).
  • books: Yalnızca kitap olan sonuçları döndürür.
  • magazines - Dergi olan sonuçları döndürür.

Aşağıdaki örnekte, arama sonuçları dergilerle kısıtlanır:

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

Döndürülecek önceden tanımlanmış hacim alanları grubunu belirtmek için projection parametresini aşağıdaki değerlerden biriyle kullanabilirsiniz:

  • full - Tüm Birim alanlarını döndürür.
  • lite: Yalnızca belirli alanları döndürür. Hangi alanların dahil edildiğini öğrenmek için Hacim referansında iki yıldız işaretiyle işaretlenen alan açıklamalarına bakın.

Aşağıdaki örnekte, sınırlı hacimli bilgilerle arama sonuçları döndürülmektedir:

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

Varsayılan olarak, cilt arama isteği maxResults sonuçlar döndürür. Burada maxResults sayfalara ayırmada kullanılan (yukarıda) ve arama terimleriyle alaka düzeyine göre sıralanmış parametredir.

Sıralamayı, orderBy parametresini aşağıdaki değerlerden biri olacak şekilde ayarlayarak değiştirebilirsiniz:

  • relevance: Sonuçları, arama terimlerinin alaka düzeyine göre sıralanmış bir şekilde döndürür (bu, varsayılan değerdir).
  • newest: Sonuçları, en son yayınlanma sırasına göre en son yayınlanan sırayla döndürür.

Aşağıdaki örnekte sonuçlar, yayınlanma tarihine (en yeniden en eskiye) göre listelenmiştir:

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

Belirli bir ses düzeyini alma

Hacim kaynak URI'sine bir HTTP GET isteği göndererek belirli bir hacme ait bilgileri alabilirsiniz:

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

volumeId yol parametresini, alınacak hacmin kimliğiyle değiştirin. Birim kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

Tek bir hacim alan GET isteğine ait bir örneği burada bulabilirsiniz:

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

Not: Birim bilgilerini almak için kimlik doğrulama gerekmez. Bu nedenle, GET isteğinde Authorization HTTP üst bilgisini sağlamanız gerekmez. Ancak çağrı, kimlik doğrulama ile yapılmışsa Hacim, satın alınmış durum gibi kullanıcıya özel bilgileri içerir.

Yanıt

İstek başarılı olursa, sunucu 200 OK HTTP durum kodu ve istenen Birim kaynağı ile yanıt verir:

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"
 }
}
Erişim Bilgileri

Bir e-Kitapta hangi özelliklerin kullanılabileceğinin belirlenmesinde accessInfo bölümü özellikle önemlidir. epub, akan metin biçiminde bir e-kitaptır. epub bölümünde bu e-kitap türünün kullanılabilir olup olmadığını belirten isAvailable özelliği bulunur. Kitap için bir örnek varsa veya kullanıcı, kitabı satın almış olması ya da kullanıcının konumunda herkese açık bir alan adı olması nedeniyle kitabı okuyabiliyorsa bir indirme bağlantısı içerir. Google Kitaplar için pdf, e-kitabın taranmış bir sayfa sürümünü (ör. kullanılabilir olup olmadığı ve indirme bağlantısıyla birlikte) belirtir. Taranmış sayfaların okunması bu cihazlarda zor olabileceğinden Google, e-Okuyucular ve Akıllı Telefonlar için epub dosyalarını önerir. accessInfo bölümü yoksa hacim Google e-Kitap olarak kullanılamaz.

İsteğe bağlı sorgu parametreleri

Belirli bir hacmi alırken standart sorgu parametrelerine ek olarak aşağıdaki sorgu parametresini de kullanabilirsiniz.

Tahmin

Döndürülecek önceden tanımlanmış hacim alanları grubunu belirtmek için projection parametresini aşağıdaki değerlerden biriyle kullanabilirsiniz:

  • full - Tüm Birim alanlarını döndürür.
  • lite: Yalnızca belirli alanları döndürür. Hangi alanların dahil edildiğini öğrenmek için Hacim referansında iki yıldız işaretiyle işaretlenen alan açıklamalarına bakın.

Aşağıdaki örnekte tek bir hacim için sınırlı hacim bilgisi verilmektedir:

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

Kitap raflarıyla çalışma

Kullanıcının genel kitap raflarının listesini alma

Bir kullanıcının genel kitaplık raflarının listesini, URI'ye aşağıdaki biçimde bir HTTP GET isteği göndererek alabilirsiniz:

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

userId yolu parametresini, kitaplıklarını almak istediğiniz kullanıcının kimliğiyle değiştirin. Kullanıcı kimlikleri hakkında daha fazla bilgi edinmek için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

Aşağıda bununla ilgili bir örnek verilmiştir:

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

Herkese açık kitaplıklarla ilgili bilgileri almak için kullanıcının kimliğinin doğrulanması gerekmez. Bu nedenle, GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa, sunucu 200 OK HTTP durum kodu ve kitaplık raf listesiyle yanıt verir:

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"
  },
  ...
 ]
}

İsteğe bağlı sorgu parametreleri

Bir kullanıcının herkese açık kitap raflarının listesini alırken standart sorgu parametrelerini kullanabilirsiniz.

Belirli bir halka açık kitap rafını alma

URI'ye aşağıdaki biçime sahip bir HTTP GET isteği göndererek belirli bir herkese açık kitap rafını alabilirsiniz:

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

userId ve raf yolu parametrelerini, almak istediğiniz kullanıcıyı ve kitaplığı belirten kimliklerle değiştirin. Daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

Aşağıda bununla ilgili bir örnek verilmiştir:

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

Herkese açık kitaplıklarla ilgili bilgileri almak için kullanıcının kimliğinin doğrulanması gerekmez. Bu nedenle, GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodu ve kitaplık kaynağıyla yanıt verir:

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"
}

İsteğe bağlı sorgu parametreleri

Herkese açık belirli bir kitap rafı alırken standart sorgu parametrelerini kullanabilirsiniz.

Halka açık bir rafta cilt listesi alma

Bir kullanıcının herkese açık kitaplığındaki ciltlerin listesini bir HTTP göndererek gönderebilirsiniz GET ve aşağıdaki biçimde bir URI isteyin:

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

İstek

Aşağıda bununla ilgili bir örnek verilmiştir:

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

userId ve raf yolu parametrelerini, almak istediğiniz kullanıcıyı ve kitaplığı belirten kimliklerle değiştirin. Daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

Herkese açık kitaplıklarla ilgili bilgileri almak için kullanıcının kimliğinin doğrulanması gerekmez. Bu nedenle, GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa, sunucu bir 200 OK HTTP durum kodu ve kullanıcı kitaplıklarının listesiyle yanıt verir:

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
}

İsteğe bağlı sorgu parametreleri

Standart sorgu parametrelerine ek olarak, herkese açık bir kitap rafındaki hacimlerin listesini alırken aşağıdaki sorgu parametresini kullanabilirsiniz.

Sayfalara ayırma

İstek parametrelerinde iki değer belirterek birim listesini sayfalara ayırabilirsiniz:

  • startIndex - Koleksiyonun başlatılacağı konum. İlk öğenin dizini 0'dır.
  • maxResults - Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10, izin verilen maksimum değer ise 40'tır.

Kitaplığım'daki kitap raflarıyla çalışma

Tüm "Kitaplığım" istekleri, kimliği doğrulanmış kullanıcının verileri için geçerlidir.

Kitap raflarımın listesi alınıyor

URI'ye aşağıdaki biçimde bir HTTP GET isteği göndererek, kimliği doğrulanmış tüm kullanıcı raflarının listesini alabilirsiniz:

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

İstek

Aşağıda bununla ilgili bir örnek verilmiştir:

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

Not: Kullanıcının, "Kitaplığım" kitap rafları listesini alabilmesi için kimliği doğrulanmış olmalıdır. Bu nedenle, GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa, sunucu 200 OK HTTP durum kodu ve kimliği doğrulanmış geçerli kullanıcının tüm kitap raflarının listesiyle yanıt verir:

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"
  }
 ]
}

İsteğe bağlı sorgu parametreleri

Kimliği doğrulanmış kullanıcının kitap raflarını listesini alırken standart sorgu parametrelerini kullanabilirsiniz.

Kitaplıkımdaki cilt listesi alınıyor

Kimliği doğrulanmış kullanıcının rafındaki birimlerin listesini, URI'ye aşağıdaki biçimde bir HTTP GET isteği göndererek alabilirsiniz:

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

Raf yol parametresini kitaplığın kimliğiyle değiştirin. Kitaplık kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

Aşağıda bununla ilgili bir örnek verilmiştir:

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

Not: Kullanıcının, "Kütüphanem" hacimleri listesini almak için kimliği doğrulanmış olmalıdır. Bu nedenle, GET isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa, sunucu 200 OK HTTP durum kodu ve kitaplık hacimleri listesiyle yanıt verir:

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
}

İsteğe bağlı sorgu parametreleri

Standart sorgu parametrelerine ek olarak, kimliği doğrulanmış kullanıcının raflarından birinin cilt listesini alırken aşağıdaki sorgu parametresini kullanabilirsiniz.

Sayfalara ayırma

İstek parametrelerinde iki değer belirterek birim listesini sayfalara ayırabilirsiniz:

  • startIndex - Koleksiyonun başlatılacağı konum. İlk öğenin dizini 0'dır.
  • maxResults - Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10'dur.

Kitabıma raf ekleme

Kimliği doğrulanmış kullanıcının rafına birim eklemek için URI'ye aşağıdaki biçimde bir HTTP POST isteği gönderin:

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

Raf yol parametresini kitaplığın kimliğiyle değiştirin. Kitaplık kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstekte tek bir zorunlu sorgu parametresi vardır:

  • volumeId: Ses seviyesi kimliği. Birim kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

&"Favoriler" kitap rafına "Algernon için Çiçek{/1} eklemek için bir örnek:

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

Not: Kitaplıkta değişiklik yapmak için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, POST isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir. Ancak bu POST için veri gerekmez.

Yanıt

İstek başarılı olursa, sunucu 204 No Content HTTP durum koduyla yanıt verir.

İsteğe bağlı sorgu parametreleri

Kimliği doğrulanmış kullanıcının raflarından birine ses eklerken standart sorgu parametrelerini kullanabilirsiniz.

Kitaplığımdan bir cilt kaldırma

Kimliği doğrulanmış kullanıcının kitaplıktan birimi kaldırmak için URI'ye aşağıdaki biçimde bir HTTP POST gönderin:

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

Raf yol parametresini kitaplığın kimliğiyle değiştirin. Kitaplık kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstekte tek bir zorunlu sorgu parametresi vardır:

  • volumeId: Ses seviyesi kimliği. Birim kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

"Algernon" için "Çiçekler" kelimesinin "Kitap rafından" kaldırılmasına ilişkin bir örneği burada bulabilirsiniz:

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

Not: Kitaplıkta değişiklik yapmak için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, POST isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir. Ancak bu POST için veri gerekmez.

Yanıt

İstek başarılı olursa, sunucu bir 204 No Content durum kodu ile yanıt verir.

İsteğe bağlı sorgu parametreleri

Kimliği doğrulanmış kullanıcının kitaplıklarından birinden ses kaldırırken standart sorgu parametrelerini kullanabilirsiniz.

Kitaplıkımdaki tüm ciltleri temizleme

Kimliği doğrulanmış kullanıcının kitaplıktan tüm ciltleri kaldırmak için URI'ye aşağıdaki biçime sahip bir HTTP POST gönderin:

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

Raf yol parametresini kitaplığın kimliğiyle değiştirin. Kitaplık kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.

İstek

"Favoriler" rafını temizlemek için bir örnek:

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
  

Not: Kitaplıkta değişiklik yapmak için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, POST isteğiyle Authorization HTTP üst bilgisini sağlamanız gerekir. Ancak bu POST için veri gerekmez.

Yanıt

İstek başarılı olursa, sunucu bir 204 No Content durum kodu ile yanıt verir.

İsteğe bağlı sorgu parametreleri

Kimliği doğrulanmış kullanıcının raflarındaki bir ciltte temizlik yaparken standart sorgu parametrelerini kullanabilirsiniz.

Sorgu parametresi referansı

Books API ile kullanabileceğiniz sorgu parametreleri bu bölümde özetlenmiştir.Tüm parametre değerlerinin URL olarak kodlanmış olması gerekir.

Standart sorgu parametreleri

Tüm Books API işlemleri için geçerli olan sorgu parametreleri Sistem Parametreleri bölümünde açıklanmıştır.

API'ye özel sorgu parametreleri

Yalnızca Books API'deki belirli işlemler için geçerli olan istek parametreleri aşağıdaki tabloda özetlenmiştir.

Parametre Anlamı Notlar Uygulanabilirlik
download İndirme kullanılabilirliğine göre hacimlerle kısıtla.
  • Şu anda desteklenen tek değer epub.
  • İndirme erişimi için satın alma gerekebilir.
filter Arama sonuçlarını hacim türü ve kullanılabilirliğe göre filtreleyin.
  • Desteklenen filtreler şunlardır:
    • filter=partial - Sonuçları, metnin en az bir kısmının önizlenebilir olduğu birimlerle sınırlandırın.
    • filter=full - Sonuçları, metnin tamamının görüntülenebilir olduğu ciltlerle sınırlandırın.
    • filter=free-ebooks - Sonuçları ücretsiz Google e-Kitaplarla sınırlandırın.
    • filter=paid-ebooks - Sonuçları Google Kitaplar'da yapılacak satın alma fiyatıyla sınırlandırın.
    • filter=ebooks - Sonuçları, ücretli veya ücretsiz Google e-Kitaplarla sınırlandırın.E-Kitap olmayan kitaplar, sınırlı önizlemede sunulan ve satışa sunulmayan yayıncı içerikleri veya dergilerdir.

 

langRestrict Belirtilen dille etiketlenmiş olanlara döndürülen hacimleri kısıtlar.
  • Arama sonuçlarını, "&";tr veya "fr" gibi iki harfli bir ISO-639-1 koduyla langRestrict belirterek belirterek belirli bir dildeki arama sonuçlarıyla sınırlandırın.
maxResults Bu istekle döndürülecek maksimum öğe sayısı.
  • Bir koleksiyondaki tüm öğelerle ilgili istekler için isteğin parametrelerinde startIndex ve maxResults belirterek sonuçları sayfalara ayırabilirsiniz.
  • Varsayılan: maxResults=10
  • İzin verilen maksimum değer: maxResults=40.
orderBy

Hacim arama sonuçlarının sırası.

  • Varsayılan olarak, bir arama isteği maxResults sonucu döndürür. Burada maxResults sayfalara ayırmada kullanılan ve en alakalı sıralamaya göre sıralanmış parametredir.
  • Sıralamayı, orderBy parametresini aşağıdaki değerlerden biri olarak ayarlayarak değiştirebilirsiniz:
    • orderBy=relevance - Arama sonuçlarını, alaka düzeyi en düşük olandan en yüksek olana doğru sıralayarak (bu, varsayılan değerdir) döndürür.
    • orderBy=newest: Arama sonuçlarını, yayınlanan en eski tarihe göre en eskiye doğru döndürür.
printType Kitaplar veya dergiler ile kısıtla.
  • Desteklenen değerler:
    • printType=all - Tüm hacimli içerik türlerini döndürür (kısıtlama yok). Bu varsayılan seçenektir.
    • printType=books - Yalnızca kitapları iade eder.
    • printType=magazines - Yalnızca dergileri döndürür.
projection Alanların alt kümesine döndürülen hacim bilgilerini kısıtla.
  • Desteklenen tahminler:
    • projection=full: Tüm hacim meta verilerini içerir (varsayılan).
    • projection=lite: Yalnızca hacim ve erişim meta verilerini içerir.
q Tam metin sorgu dizesi.
  • Sorgu oluştururken arama terimlerini '+' ile ayrılmış olarak q=term1+term2_term3 biçiminde listeleyin. (Alternatif olarak, bunları bir boşlukla ayırabilirsiniz, ancak tüm sorgu parametresi değerlerinde olduğu gibi, boşluklar URL olarak kodlanmalıdır.) API, tüm arama terimleriyle eşleşen (terimler arasında VE operatörünün kullanılması gibi) tüm girişleri döndürür. Google'ın web araması gibi API de alt dizelerde değil, tam kelimeler (ve aynı köke sahip ilgili kelimeler) için arama yapar.
  • Aynen yazıldığı gibi arama yapmak için ifadeyi tırnak içine alın: q="exact phrase".
  • Belirli bir terimle eşleşen girişleri hariç tutmak için q=-term formunu kullanın.
  • Arama terimleri büyük/küçük harfe duyarlı değildir.
  • Örnek: "Elizabeth Bennet" ifadesini tam olarak içeren ve "Darcy" kelimesini içeren tüm girişleri aramak ancak "Austen" kelimesini içermeyen tüm girişleri aramak için şu sorgu parametresi değerini kullanın:
    q="Elizabeth+Bennet"+Darcy-Austen
  • Arama terimlerinde, belirli alanlarda arama yapmak için belirtebileceğiniz özel (büyük/küçük harfe duyarlı) anahtar kelimeler vardır. Örneğin:
    • intitle: Bu anahtar kelimeyi izleyen metnin başlıkta bulunduğu sonuçları döndürür.
    • inauthor: Bu anahtar kelimeyi izleyen metnin yazarda bulunduğu sonuçları döndürür.
    • inpublisher: Bu anahtar kelimenin ardından gelen metnin yayıncıda bulunduğu sonuçları döndürür.
    • subject: Bu anahtar kelimeyi izleyen metnin, kategorinin kategori listesinde yer aldığı sonuçları döndürür.
    • isbn: Bu anahtar kelimeyi izleyen metnin ISBN numarası olduğu sonuçları döndürür.
    • lccn: Bu anahtar kelimeyi izleyen metnin, Kongre Kütüphanesi Kontrol Numarası olduğu sonuçları döndürür.
    • oclc: Anahtar kelimeyi izleyen metnin Online Bilgisayar Kitaplığı Merkezi numarası olduğu sonuçları döndürür.
startIndex Koleksiyonda sonuç listesinin başlatılacağı konum.
  • Bir koleksiyondaki tüm öğelerle ilgili istekler için isteğin parametrelerinde startIndex ve maxResults belirterek sonuçları sayfalara ayırabilirsiniz.
  • İlk öğenin dizini 0'dır.
volumeId İstekle ilgili bir hacmi tanımlar.
  • Kitap rafına eklenecek veya kaldırılacak öğe hacmini belirtir.