İç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:
- 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.
- Google API Konsolu'nda Books API'yi etkinleştirin. (API, API Konsolu'nda listelenmemişse bu adımı atlayın.)
- Uygulamanız kullanıcı verilerine erişmesi gerektiğinde Google'dan belirli bir erişim kapsamı ister.
- Google, kullanıcıya uygulamanızı kullanıcının verilerinden bazılarını istemeye yetkilendirmesi için bir onay ekranı gösterir.
- Kullanıcı onaylarsa Google, uygulamanıza kısa süreli bir erişim jetonu verir.
- Uygulamanız, erişim jetonunu isteğe ekleyerek kullanıcı verileri için istekte bulunur.
- 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:
- API Konsolu'nda Kimlik bilgileri sayfasını açın.
-
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ğiniid
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.
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.
Baskı 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:
volumeId
: Birimin kimliği. Cilt kimlikleri hakkında daha fazla bilgi için Google Kitaplar kimlikleri bölümüne bakın.
İ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:
volumeId
: Birimin kimliği. Cilt kimlikleri hakkında daha fazla bilgi için Google Kitaplar kimlikleri bölümüne bakın.
İ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. |
|
|
filter |
Arama sonuçlarını ses türüne ve stok durumuna göre filtreleyin. |
|
|
langRestrict |
Döndürülen ciltleri, belirtilen dille etiketlenenlerle kısıtlar. |
|
|
maxResults |
Bu istekle döndürülecek maksimum öğe sayısı. |
|
|
orderBy |
Hacim arama sonuçlarının sırası. |
|
|
printType |
Kitap veya dergilerle sınırlandırın. |
|
|
projection |
Döndürülen hacim bilgilerini bir alan alt kümesine kısıtlayın. |
|
|
q |
Tam metin sorgu dizesi. |
|
|
startIndex |
Koleksiyonda, sonuç listesinin başlatılacağı konum. |
|
|
volumeId |
İstekle ilişkili bir birimi tanımlar. |
|