İç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:
- 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.
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:
- 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, ö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.
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.
Yazdırma 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. |
|
|
filter |
Arama sonuçlarını hacim türü ve kullanılabilirliğe göre filtreleyin. |
|
|
langRestrict |
Belirtilen dille etiketlenmiş olanlara döndürülen hacimleri kısıtlar. |
|
|
maxResults |
Bu istekle döndürülecek maksimum öğe sayısı. |
|
|
orderBy |
Hacim arama sonuçlarının sırası. |
|
|
printType |
Kitaplar veya dergiler ile kısıtla. |
|
|
projection |
Alanların alt kümesine döndürülen hacim bilgilerini kısıtla. |
|
|
q |
Tam metin sorgu dizesi. |
|
|
startIndex |
Koleksiyonda sonuç listesinin başlatılacağı konum. |
|
|
volumeId |
İstekle ilgili bir hacmi tanımlar. |
|