API'yi kullanın

İçindekiler

Giriş

Bu doküman, Kitaplar API'si ile etkileşim kurabilen 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. Kitaplar API'si, bu içeriği aramanın ve bu içeriğe erişmenin yanı sıra bu içerikle ilgili kişiselleştirmeler oluşturup görüntülemenin bir yoludur.

Google Kitaplar kavramları hakkında bilginiz yoksa kodlamaya başlamadan önce Başlangıç bölümünü okumanız gerekir.

İstekleri yetkilendirme ve uygulamanızı tanımlama

Uygulamanızın Books API'ye gönderdiği her istek, uygulamanızı Google'a tanımlamalıdır. Uygulamanızı tanımlamanın iki yolu vardır: OAuth 2.0 jetonu (isteği de yetkilendirir) ve/veya uygulamanın API anahtarı. Bu seçeneklerden hangisini kullanacağınızı belirlemek için aşağıdaki adımları uygulayın:

  • İstek yetkilendirme gerektiriyorsa (ör. bir kişinin gizli verilerine ilişkin istek) uygulama, istekle birlikte bir OAuth 2.0 jetonu sağlamalıdır. Uygulama, API anahtarını da sağlayabilir ancak bunu yapması gerekmez.
  • İstek yetkilendirme gerektirmiyorsa (ör. herkese açık veriler için istek) uygulama, API anahtarını veya OAuth 2.0 jetonunu ya da sizin için en uygun seçeneği (ikisi birden) sağlamalı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 özelliğini kullanıyorsa yetkilendirme işleminin bazı kısımları sizin adınıza gerçekleştirilir.

OAuth 2.0 kullanarak istekleri yetkilendirme

Herkese açık olmayan kullanıcı verileri için Books API'ye gönderilen isteklerin, kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmesi gerekir.

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.

Kitaplar API'si 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 gönderilen isteklerin bir tanımlayıcıyla birlikte gönderilmesi gerekir. Bu tanımlayıcı, API anahtarı veya erişim jetonu olabilir.

API anahtarı edinmek 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, jeton almak için önce bir istemci kimliği ve muhtemelen bir istemci sırrı 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 belgelerine göz atın.

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

      API, API anahtarlarında çeşitli kısıtlama türlerini destekler. İhtiyacınız olan API anahtarı yoksa Kimlik bilgileri oluştur > API anahtarı'nı tıklayarak Console'da API anahtarı oluşturun. Anahtarı kısıtla'yı tıklayıp Kısıtlamalar'dan birini seçerek anahtarı üretimde kullanmadan önce kısıtlayabilirsiniz.

API anahtarlarınızın güvenliğini sağlamak için API anahtarlarını güvenli bir şekilde kullanmayla ilgili en iyi uygulamaları uygulayın.

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ını belirtmeniz gerekir. Google Kitaplar'da üç tür kimlik kullanılır:

  • Cilt kimlikleri: Google Kitaplar'ın bildiği her cilte atanan benzersiz dizeler. Hacim kimliği örneği: _LettPDhwR0C. Cilt kaynağı döndüren bir istek göndererek cilt kimliğini almak için API'yi kullanabilirsiniz. Cilt kimliğini id alanında bulabilirsiniz.
  • Kitaplık kimlikleri: Kullanıcının kitaplığındaki bir kitaplığa atanan sayısal değerlerdir. Google, aşağıdaki kimliklere sahip her kullanıcı için önceden tanımlanmış bazı raflar sağlar:
    • Favoriler: 0
    • Satın alınan: 1
    • Okuma: 2
    • Şu anda okunuyor: 3
    • Okudum: 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 1000'den büyüktür. Kitaplık kimliği, belirli bir kullanıcı için benzersizdir. Yani iki kullanıcının, farklı kitaplıklara atıfta bulunan aynı kimliğe sahip bir kitaplığı olabilir. Kitaplık kaynağı döndüren bir istek göndererek kitaplık kimliğini almak için API'yi kullanabilirsiniz. Kitaplık kimliğini id alanında bulabilirsiniz.
  • Kullanıcı kimlikleri: Her kullanıcıya atanan benzersiz sayısal değerlerdir. Bu değerler, diğer Google hizmetlerinde kullanılan kimlik değeriyle aynı olmayabilir. Şu anda kullanıcı kimliğini almanın tek yolu, kimliği doğrulanmış bir istekle alınan bir Kitaplık kaynağındaki selfLink değerinden ayıklamaktır. Kullanıcılar, Kitaplar sitesinden de kendi kullanıcı kimliklerini edinebilir. Kullanıcılar, API veya Kitaplar sitesi üzerinden başka bir kullanıcının kullanıcı kimliğini alamaz. Bu bilgileri, ilgili kullanıcının açıkça (ör. e-posta ile) paylaşması gerekir.

Google Kitaplar sitesindeki kimlikler

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

  • Cilt kimliği

    Sitede belirli bir cildi görüntülerken cilt kimliğini id URL parametresinde bulabilirsiniz. Örnek:

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

  • Kitaplık kimliği

    Sitede belirli bir kitap rafını görüntülerken kitap rafı kimliğini as_coll URL parametresinde bulabilirsiniz. Örnek:

    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

    Kitaplığınızı sitede görüntülerken kullanıcı kimliğini uid URL parametresinde bulabilirsiniz. Örnek:

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

Kullanıcı konumunu ayarlama

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

Birimlerle ç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 istekte tek bir zorunlu parametre vardır:

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

İstek

Daniel Keyes'in "Algernon için Çiçekler" adlı kitabını aramayla ilgili bir örnek aşağıda verilmiştir:

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

Not: Arama yapmak için kimlik doğrulama gerekmez. Bu nedenle, GET isteğiyle birlikte Authorization HTTP üst bilgisini sağlamanız gerekmez. Ancak, arama kimlik doğrulamayla yapılırsa her cilt, satın alma durumu gibi kullanıcıya özgü bilgileri içerir.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodu ve ses seviyesi sonuçlarıyla yanıt verir:

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

Hacim araması yaparken standart sorgu parametrelerine ek olarak aşağıdaki sorgu parametrelerini de kullanabilirsiniz.

İndirme Biçimi

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

Aşağıdaki örnekte, epub indirme seçeneği olan kitaplar aranır:

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

Döndürülen sonuçları daha da kısıtlamak için filter parametresini aşağıdaki değerlerden birine ayarlayabilirsiniz:

  • partial: Metnin en azından bir kısmının önizlenebilir olduğu sonuçları döndürür.
  • full: Yalnızca metnin tamamının görülebildiği 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ını döndürür.
  • ebooks: Yalnızca ücretli veya ücretsiz Google e-kitapları olan sonuçları döndürür. E-kitap olmayan içeriklere örnek olarak, sınırlı önizleme olarak sunulan ve satılmayacak yayıncı içerikleri veya dergiler verilebilir.

Aşağıdaki örnekte, arama sonuçları ücretsiz e-kitap olarak sunulanlarla sınırlandırılmıştır:

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

İsteğin parametrelerinde iki değer belirterek hacimler listesini sayfalara ayırabilirsiniz:

  • startIndex: Koleksiyonda başlanacak konum. İlk öğenin dizini 0'dır.
  • maxResults: Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10'dur ve izin verilen maksimum değer 40'tır.

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

  • all: Baskı türüne göre kısıtlama yapmaz (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 sınırlandırılmıştır:

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

Döndürülecek önceden tanımlanmış bir Hacim alanı grubu belirtmek için projection parametresini aşağıdaki değerlerden biriyle kullanabilirsiniz:

  • full: Tüm Hacim alanlarını döndürür.
  • lite: Yalnızca belirli alanları döndürür. Hangi alanların dahil edildiğini öğrenmek için Sayı referansı bölümünde çift yıldızla işaretlenmiş alan açıklamalarına bakın.

Aşağıdaki örnekte, sınırlı hacim bilgisi içeren 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, hacim arama isteği maxResults sonucu döndürür. Burada maxResults, sayfalandırmada kullanılan parametredir (yukarıda gösterilmiştir) ve arama terimleriyle alaka düzeyine göre sıralanır.

orderBy parametresini aşağıdaki değerlerden birine ayarlayarak sıralamayı değiştirebilirsiniz:

  • relevance: Sonuçları, arama terimlerinin alaka düzeyine göre döndürür (varsayılan ayardır).
  • newest: Sonuçları en sondan en eskiye doğru sırayla döndürür.

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

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

Belirli bir birimi alma

Birim kaynak URI'sine HTTP isteği göndererek belirli bir birimle ilgili bilgileri alabilirsiniz:GET

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

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

İstek

Tek bir cilt alan GET isteği örneğini aşağıda bulabilirsiniz:

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

Not: Hacim bilgilerini almak için kimlik doğrulama gerekmez. Bu nedenle, GET isteğiyle birlikte Authorization HTTP başlığını sağlamanız gerekmez. Ancak çağrı kimlik doğrulamasıyla yapılırsa Hacim, satın alma durumu gibi kullanıcıya özgü bilgileri içerir.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodu ve istenen Volume kaynağıyla 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

accessInfo bölümü, e-kitaplarda hangi özelliklerin kullanılabileceğini belirlemek açısından özellikle önemlidir. epub, akan metin biçiminde bir e-kitaptır. epub bölümünde, bu tür e-kitapların kullanılıp kullanılamadığını belirten bir isAvailable mülkü bulunur. Kitabın bir örneği varsa veya kullanıcı kitabı satın aldığı veya kullanıcının bulunduğu konumda herkese açık olduğu için okuyabiliyorsa indirme bağlantısı gösterilir. Google Kitaplar için pdf, e-kitabın tarama sayfası sürümünü gösterir. Bu sürümde, e-kitabın mevcut olup olmadığı ve indirme bağlantısı gibi benzer ayrıntılar bulunur. Tarama sayfalarının bu cihazlarda okunması zor olabileceğinden Google, eReader'lar ve akıllı telefonlar için epub dosyalarını önerir. accessInfo bölümü yoksa cilt Google e-kitabı olarak kullanılamaz.

İsteğe bağlı sorgu parametreleri

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

Projeksiyon

Döndürülecek önceden tanımlanmış bir Hacim alanı grubu belirtmek için projection parametresini aşağıdaki değerlerden biriyle kullanabilirsiniz:

  • full: Tüm Hacim alanlarını döndürür.
  • lite: Yalnızca belirli alanları döndürür. Hangi alanların dahil edildiğini öğrenmek için Sayı referansı bölümünde çift yıldızla işaretlenmiş alan açıklamalarına bakın.

Aşağıdaki örnekte, tek bir birim için sınırlı birim bilgisi döndürülür:

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

Kitap raflarıyla çalışma

Kullanıcının herkese açık kitaplıklarının listesini alma

Aşağıdaki biçimi kullanarak URI'ye bir HTTP GET isteği göndererek kullanıcının herkese açık kitaplıklarının listesini alabilirsiniz:

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

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

İstek

Örnek:

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

Kullanıcının herkese açık kitap raflarıyla ilgili bilgileri almak için kimliğinin doğrulanması gerekmediğinden, GET isteğiyle birlikte Authorization HTTP başlığını sağlamanız gerekmez.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodu ve kitaplık listesini içeren bir 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 kitaplıklarının listesini alırken standart sorgu parametrelerini kullanabilirsiniz.

Belirli bir herkese açık kitaplığı alma

Aşağıdaki biçimle URI'ye 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 shelf yol parametrelerini, almak istediğiniz kullanıcıyı ve kitap rafını belirten kimliklerle değiştirin. Daha fazla bilgi için Google Kitaplar kimlikleri bölümüne bakın.

İstek

Örnek:

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

Kullanıcının herkese açık kitap raflarıyla ilgili bilgileri almak için kimliğinin doğrulanması gerekmediğinden, GET isteğiyle birlikte Authorization HTTP başlığını sağlamanız gerekmez.

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

Belirli bir herkese açık kitap rafını alırken standart sorgu parametrelerini kullanabilirsiniz.

Herkese açık bir kitaplıktaki ciltlerin listesini alma

Aşağıdaki biçime sahip bir URI'ye HTTP GET isteği göndererek kullanıcının herkese açık kitaplığındaki ciltlerin listesini alabilirsiniz:

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

İstek

Örnek:

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

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

Kullanıcının herkese açık kitap raflarıyla ilgili bilgileri almak için kimliğinin doğrulanması gerekmediğinden, GET isteğiyle birlikte Authorization HTTP başlığını sağlamanız gerekmez.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodu ve kullanıcının kitaplıklarının listesini içeren bir 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

Herkese açık bir kitaplıktaki ciltlerin listesini alırken standart sorgu parametrelerine ek olarak aşağıdaki sorgu parametresini kullanabilirsiniz.

Sayfalara ayırma

İsteğin parametrelerinde iki değer belirterek hacimler listesini sayfalara ayırabilirsiniz:

  • startIndex: Koleksiyonda başlanacak konum. İlk öğenin dizini 0'dır.
  • maxResults: Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10'dur ve izin verilen maksimum değer 40'tır.

"Kitaplığım"da 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 listesini alma

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

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

İstek

Örnek:

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

Not: "Kitaplığım" kitaplıklarının listesini almak için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, GET isteğiyle birlikte Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodunu ve kimliği doğrulanmış mevcut kullanıcının tüm kitaplıklarının listesini döndürür:

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 kitaplıklarının listesini alırken standart sorgu parametrelerini kullanabilirsiniz.

Kitaplığımdaki kitapların listesini alma

Aşağıdaki biçimle URI'ye bir HTTP GET isteği göndererek kimliği doğrulanmış kullanıcının kitaplığındaki ciltlerin listesini 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

Örnek:

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

Not: "Kitaplığım"daki ciltlerin listesini almak için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, GET isteğinde Authorization HTTP üst bilgisini sağlamanız gerekir.

Yanıt

İstek başarılı olursa sunucu, 200 OK HTTP durum kodunu ve kitaplık ciltlerinin listesini içeren bir yanıt döndürür:

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

Kimliği doğrulanmış kullanıcının kitaplıklarından birindeki ciltlerin listesini alırken standart sorgu parametrelerine ek olarak aşağıdaki sorgu parametresini kullanabilirsiniz.

Sayfalara ayırma

İsteğin parametrelerinde iki değer belirterek hacimler listesini sayfalara ayırabilirsiniz:

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

Kitaplığıma kitap ekleme

Kimliği doğrulanmış kullanıcının kitaplığına cilt eklemek için URI'ye aşağıdaki biçime sahip 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:

İstek

"Algernon için çiçekler" kitabını "Favoriler" kitap rafına ekleme örneğini aşağıda bulabilirsiniz:

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ğinin doğrulanması gerekir. Bu nedenle, POST isteğiyle birlikte Authorization HTTP başlığını da 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 kitaplıklarından birine cilt eklerken standart sorgu parametrelerini kullanabilirsiniz.

Kitaplığımdan bir kitabı kaldırma

Kimliği doğrulanmış kullanıcının kitaplığından bir kitabı kaldırmak için URI'ye aşağıdaki biçime sahip bir HTTPPOST 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:

İstek

"Algernon için Çiçekler" adlı kitabı "Favoriler" kitap rafından kaldırmak için aşağıdaki örneği inceleyin:

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ğinin doğrulanması gerekir. Bu nedenle, POST isteğiyle birlikte Authorization HTTP başlığını da sağlamanız gerekir. Ancak bu POST için veri gerekmez.

Yanıt

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

İsteğe bağlı sorgu parametreleri

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

Kitaplığımdaki tüm ciltleri temizleme

Kimliği doğrulanmış kullanıcının kitaplığındaki 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" kitap rafını temizlemeye yönelik bir örnek aşağıda verilmiştir:

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ğinin doğrulanması gerekir. Bu nedenle, POST isteğiyle birlikte Authorization HTTP başlığını da sağlamanız gerekir. Ancak bu POST için veri gerekmez.

Yanıt

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

İsteğe bağlı sorgu parametreleri

Kimliği doğrulanmış kullanıcının kitaplıklarından birindeki tüm ciltleri temizlerken 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 kodlanması 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 ciltleri kısıtlayın.
  • Şu anda yalnızca epub değeri desteklenmektedir.
  • İndirme erişimi için satın alma işlemi gerekebilir.
filter Arama sonuçlarını ses türüne ve stok durumuna göre filtreleyin.
  • Desteklenen filtreler:
    • filter=partial: Sonuçları, metnin en az bir kısmının önizlenebilir olduğu ciltlerle kısıtlayın.
    • filter=full: Sonuçları, metnin tamamının görüntülenebilir olduğu birimlerle kısıtlayın.
    • filter=free-ebooks: Sonuçları ücretsiz Google e-kitaplarıyla sınırlandırın.
    • filter=paid-ebooks: Sonuçları, satın alma fiyatı olan Google e-Kitaplar ile kısıtlayın.
    • filter=ebooks: Sonuçları ücretli veya ücretsiz Google e-kitaplarıyla sınırlandırın.E-kitap olmayan içeriklere örnek olarak, sınırlı önizleme olarak sunulan ve satılık olmayan yayıncı içerikleri veya dergiler verilebilir.

 

langRestrict Döndürülen ciltleri, belirtilen dille etiketlenenlerle kısıtlar.
  • langRestrict özelliğini "en" veya "fr" gibi iki harfli bir ISO-639-1 koduyla belirterek arama sonuçlarını belirli bir dile sahip olanlarla sınırlayın.
maxResults Bu istekle döndürülecek maksimum öğe sayısı.
  • Bir koleksiyondaki tüm öğelerle ilgili isteklerde, 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 sonuç döndürür. Bu sayede, maxResults parametresi sayfalandırmada kullanılır ve en alakalı sonuçlar öncelikli olarak sıralanır.
  • orderBy parametresini aşağıdaki değerlerden birine ayarlayarak sıralamayı değiştirebilirsiniz:
    • orderBy=relevance: Arama sonuçlarını en alakalıdan en az alakalıya göre döndürür (varsayılan ayardır).
    • orderBy=newest: Arama sonuçlarını, en yeni yayın tarihi ile en eski yayın tarihi
printType Kitap veya dergilerle sınırlandırın.
  • Desteklenen değerler:
    • printType=all: Tüm sesli içerik türlerini döndürme (kısıtlama yok). Bu, varsayılan seçenektir.
    • printType=books: Yalnızca kitapları iade edin.
    • printType=magazines: Yalnızca dergileri iade edin.
projection Döndürülen hacim bilgilerini bir alan alt kümesine kısıtlayın.
  • Desteklenen projeksiyonlar şunlardır:
    • projection=full: Tüm birim meta verilerini içerir (varsayılan).
    • projection=lite: Yalnızca hacim ve erişim meta verisi konusunu içerir.
q Tam metin sorgu dizesi.
  • Sorgu oluştururken arama terimlerini "+" ile ayrılmış şekilde q=term1+term2_term3 biçiminde listeleyin. (Alternatif olarak, bunları boşlukla ayırabilirsiniz ancak tüm sorgu parametresi değerlerinde olduğu gibi, boşluklar da URL olarak kodlanmalıdır.) API, tüm arama terimleriyle eşleşen tüm girişleri döndürür (ör. terimler arasında AND kullanılması). Google'ın web araması gibi, API de alt dizeler yerine tam kelimeleri (ve aynı köke sahip ilgili kelimeleri) arar.
  • Tam bir kelime öbeği aramak için kelime öbeğini 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" tam kelime öbeğini ve "Darcy" kelimesini içeren ancak "Austen" kelimesini içermeyen tüm girişleri aramak için aşağıdaki sorgu parametresi değerini kullanın:
    q="Elizabeth+Bennet"+Darcy-Austen
  • Belirli alanlarda arama yapmak için arama terimlerinde belirtebileceğiniz özel (büyük/küçük harfe duyarlı) anahtar kelimeler vardır. Örneğin:
    • intitle: Bu anahtar kelimeden sonra gelen metnin başlıkta bulunduğu sonuçları döndürür.
    • inauthor: Bu anahtar kelimeden sonra gelen metnin yazarda bulunduğu sonuçları döndürür.
    • inpublisher: Bu anahtar kelimeden sonra gelen metnin yayıncıda bulunduğu sonuçları döndürür.
    • subject: Bu anahtar kelimeden sonra gelen metnin cildin kategori listesinde listelendiği sonuçları döndürür.
    • isbn: Bu anahtar kelimeden sonra gelen metnin ISBN numarası olduğu sonuçları döndürür.
    • lccn: Bu anahtar kelimeden sonra gelen metnin Library of Congress kontrol numarası olduğu sonuçları döndürür.
    • oclc: Bu anahtar kelimeyi izleyen metnin Online Computer Library Center numarası olduğu sonuçları döndürür.
startIndex Koleksiyonda, sonuç listesinin başlatılacağı konum.
  • Bir koleksiyondaki tüm öğelerle ilgili isteklerde, istek parametrelerinde startIndex ve maxResults belirterek sonuçları sayfalara ayırabilirsiniz.
  • İlk öğenin dizini 0'dır.
volumeId İstekle ilişkili bir birimi tanımlar.
  • Kitap rafına eklenecek veya kitap rafından kaldırılacak ciltleri belirtir.