İçindekiler
Giriş
Bu belge, Books API ile etkileşimde bulunabilecek uygulamalar yazmak isteyen geliştiricilere yöneliktir. Google Kitaplar'ın misyonu, dünyadaki kitap içeriğini dijitalleştirmek ve web'de daha kolay bulunabilir hale getirmektir. Books API, söz konusu içeriği arayıp erişmenin yanı sıra, bu içerikle ilgili kişiselleştirme oluşturma ve görüntüleme olanağı sunar.
Google Kitaplar kavramlarına aşina değilseniz kodlamaya başlamadan önce Başlarken bölümünü okumalısınız.
İstekleri yetkilendirme ve uygulamanızı tanımlama
Uygulamanızın Books API'ye gönderdiği her isteğin, uygulamanızı Google'a tanımlaması gerekir. Uygulamanızı tanımlamanın iki yolu vardır: OAuth 2.0 jetonu (isteği de yetkilendirir) ve/veya uygulamanın API anahtarını kullanmak. Bu seçeneklerden hangisinin kullanılacağını nasıl belirleyeceğiniz aşağıda açıklanmıştır:
- İstek, yetkilendirme gerektiriyorsa (örneğin, bir kişinin özel verilerine yönelik istek), uygulamanın istekle birlikte bir OAuth 2.0 jetonu sağlaması gerekir. Uygulama da API anahtarını sağlayabilir, ancak bu zorunlu değildir.
- İstek, yetkilendirme gerektirmiyorsa (örneğin, herkese açık veri isteği) uygulamanın, sizin için en uygun seçenek olan API anahtarını veya OAuth 2.0 jetonunu ya da her ikisini de sağlaması gerekir.
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 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 aşağıda verilmiştir:
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 bir tanımlayıcı (API anahtarı veya erişim jetonu olabilir) 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 olan kimlik bilgilerini oluşturun:
-
OAuth 2.0: Uygulamanız, özel kullanıcı verileri istediğinde istekle birlikte bir OAuth 2.0 jetonu göndermelidir. Uygulamanız önce bir istemci kimliği ve muhtemelen bir jeton almak için 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 isteklerin API anahtarı göndermesi gerekir. 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 bilgisi oluştur > API anahtarı'nı tıklayarak Console'da bir 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ı güvende tutmak için API anahtarlarını güvenli bir şekilde kullanmaya yönelik en iyi uygulamaları izleyin.
Bir API anahtarınız olduktan sonra, uygulamanız tüm istek URL'lerine key=yourAPIKey
sorgu parametresini 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ına sahip kimlik alanlarını belirtmeniz gerekir. Google Kitaplar'da kullanılan üç tür kimlik vardır:
- Cilt Kimlikleri - Google Kitaplar'ın bildiği her cilde verilen benzersiz dizeler. Birim kimliğine örnek olarak
_LettPDhwR0C
verilebilir. Birim kaynağı döndüren bir istekte bulunarak birim kimliğini almak için API'yi kullanabilirsiniz. Birim kimliğini ilgiliid
alanında bulabilirsiniz. - Kitap Rafı Kimlikleri: Bir kullanıcının kitaplığındaki bir kitap rafına verilen sayısal değerler. Google, her kullanıcı için aşağıdaki kimliklere sahip bazı önceden tanımlanmış raflar sağlar:
- Favoriler: 0
- Satın alındı: 1
- Okumak için: 2
- Şu Anda Okuyanlar: 3
- Okundu: 4
- İncelendi: 5
- Son Görüntülenenler: 6
- E-kitaplarım: 7
- Size Özel Kitaplar: 8 Kullanıcı için herhangi bir ö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ğerlerin, diğer Google hizmetlerinde kullanılan kimlik değeriyle aynı olması gerekmez. Şu anda kullanıcı kimliğini almanın tek yolu, kimliği kimliği doğrulanmış istekle alınan bir Bookshelf kaynağındaki selfLink'ten çıkarmaktır. Kullanıcılar ayrıca Kitaplar sitesinden kendi kullanıcı kimliklerini de alabilirler. Bir kullanıcı, API veya Kitaplar sitesi üzerinden başka bir kullanıcının kullanıcı kimliğini alamaz. Diğer kullanıcının bu bilgileri açıkça, örneğin 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.
- Cilt kimliği
Sitedeki belirli bir birimi görüntülerken birim 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
Sitede kitaplığınızı 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 konumuyla ilişkili telif hakkı, sözleşme ve diğer yasal kısıtlamalara uyar. Bunun sonucunda bazı kullanıcılar belirli ülkelerden kitap içeriğine erişemeyebilir. Örneğin, belirli kitaplar yalnızca ABD'de "önizleme yapılabilir". Bu tür önizleme bağlantıları diğer ülkelerdeki kullanıcılar için geçerli değildir. 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 HTTP GET
isteği göndererek hacim araması yapabilirsiniz:
https://www.googleapis.com/books/v1/volumes?q=search+terms
Bu isteğin tek bir zorunlu parametresi var:
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 sonraki metnin başlıkta bulunduğu sonuçları döndürür.inauthor:
Bu anahtar kelimeden sonraki metnin yazarda bulunduğu sonuçları döndürür.inpublisher:
Bu anahtar kelimeden sonraki metnin yayıncıda bulunduğu sonuçları döndürür.subject:
Bu anahtar kelimeden sonraki metnin, hacim kategori listesinde listelendiği sonuçları döndürür.isbn:
Bu anahtar kelimeden sonraki 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 Kütüphanesi Merkezi numarası olduğu sonuçları döndürür.
İstek
Daniel Keyes'in "Flowers for Algernon" (Algernon için Çiçek) aramasıyla ilgili bir örnek:
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 Authorization
HTTP üst bilgisini sağlamanız gerekmez. Ancak, çağrı kimlik doğrulama ile yapılırsa her Birim, satın alma durumu gibi kullanıcıya özel bilgiler içerir.
Yanıt
İstek başarılı olursa sunucu 200 OK
HTTP durum koduyla ve hacim 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
Döndürülen sonuçları, kullanılabilir indirme biçimi epub
olan birimlerle sınırlamak için
değerini epub
olarak ayarlayarak download
parametresini kullanabilirsiniz.
Aşağıdaki örnekte, indirilebilir epub (ePUB) indirme özelliğ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 ayarlayarak kullanabilirsiniz:
partial
- Metnin en az bir bölümünün önizlenebildiği 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 olup satılamayan yayıncı içerikleri veya dergiler verilebilir.
Aşağıdaki örnekte arama sonuçları ücretsiz e-Kitap olarak mevcut olanlarla 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 birimler listesini sayfalara ayırabilirsiniz:
startIndex
: Koleksiyonda başlatılacak 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 40'tır.
Baskı Türü
Döndürülen sonuçları belirli bir baskı veya yayın türüyle kısıtlamak için printType
parametresini aşağıdaki değerlerden birine ayarlayarak 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 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ış Hacim alanları grubunu belirtmek için projection
parametresini aşağıdaki değerlerden biriyle kullanabilirsiniz:
full
- Tüm Cilt 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ı bölümünde çift yıldızla işaretlenmiş alan açıklamalarına bakın.
Aşağıdaki örnek, sınırlı hacim bilgisi içeren arama sonuçları döndürür:
GET https://www.googleapis.com/books/v1/volumes?q=flowers&projection=lite&key=yourAPIKey
Sıralama
Varsayılan olarak, hacim arama isteği maxResults
sonuçlarını döndürür. Burada maxResults
, sayfalara ayırma işleminde (yukarıda) kullanılan ve arama terimleriyle alaka düzeyine göre sıralanmış parametredir.
orderBy
parametresini şu değerlerden biri olacak şekilde ayarlayarak sıralamayı değiştirebilirsiniz:
relevance
- Sonuçları, arama terimlerinin alaka düzeyine göre döndürür (bu, varsayılan değerdir).newest
- Sonuçları en son yayınlanandan en az yakın zamanda yayınlanana doğru döndürür.
Aşağıdaki örnekte sonuçlar, en yeniden en eskiye doğru yayınlanma tarihine göre listelenmektedir:
GET https://www.googleapis.com/books/v1/volumes?q=flowers&orderBy=newest&key=yourAPIKey
Belirli bir birimi alma
Birim kaynak URI'sine HTTP GET
isteği göndererek belirli bir birime ait bilgileri alabilirsiniz:
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 birim alan GET
isteği örneğini aşağıda 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ğiyle Authorization
HTTP üst bilgisini sağlamanız gerekmez. Ancak, arama kimlik doğrulamayla yapılırsa Birim, satın alma durumu gibi kullanıcıya özel bilgileri içerir.
Yanıt
İstek başarılı olursa sunucu, 200 OK
HTTP durum koduyla ve istenen Birim 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
Bir e-Kitap için hangi özelliklerin kullanılabileceğinin belirlenmesinde accessInfo
bölümü özellikle önemlidir. epub
, akan metin biçimindeki bir e-kitaptır. epub
bölümünde, bu e-kitap türünün kullanılabilir olup olmadığını belirten bir isAvailable
özelliği bulunur.
Kitap için bir örnek varsa veya kullanıcı kitabı satın almış olması ya da bulunduğu yerde kamu alanında olması nedeniyle okuyabiliyorsa burada bir indirme bağlantısı bulunur. Google Kitaplar için pdf
ifadesi, e-kitabın, kullanılabilir olması ve indirme bağlantısı gibi benzer ayrıntılara sahip taranmış sayfalar sürümünü belirtir. Taranan sayfaların
bu cihazlarda okunması zor olabileceğinden, Google, e-Okuyucular ve Akıllı Telefonlar için epub
dosyalarını önerir.
accessInfo
bölümü yoksa cilt Google e-Kitap olarak kullanılamaz.
İsteğe bağlı sorgu parametreleri
Belirli bir birimi alırken standart sorgu parametrelerine ek olarak aşağıdaki sorgu parametresini kullanabilirsiniz.
Projeksiyon
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 Cilt 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ı bölümünde çift yıldızla işaretlenmiş alan açıklamalarına bakın.
Aşağıdaki örnek, tek bir birim için sınırlı hacim bilgileri döndürür:
GET https://www.googleapis.com/books/v1/volumes/zyTCAlFPjgYC?projection=lite&key=yourAPIKey
Kitap raflarıyla çalışma
Bir kullanıcının herkese açık kitap raflarının listesini alma
URI'ye aşağıdaki biçimde bir HTTP GET
isteği göndererek bir kullanıcının genel kitap raflarının listesini alabilirsiniz:
https://www.googleapis.com/books/v1/users/userId/bookshelves
userId path parametresini, kitap rafları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 alması için kullanıcının kimliğinin doğrulanması gerekmediğinden, GET
isteğini Authorization
HTTP üst bilgisiyle sağlamanız gerekmez.
Yanıt
İstek başarılı olursa sunucu 200 OK
HTTP durum kodu ve kitap raflarının 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 herkese açık kitaplığı alma
URI'ye aşağıdaki biçimde bir HTTPGET
isteği göndererek belirli bir herkese açık kitaplığı 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 alması için kullanıcının kimliğinin doğrulanması gerekmediğinden, GET
isteğini Authorization
HTTP üst bilgisiyle sağlamanız gerekmez.
Yanıt
İstek başarılı olursa sunucu 200 OK
HTTP durum kodu ve kitap rafı 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 kitaplığı alırken standart sorgu parametrelerini kullanabilirsiniz.
Herkese açık bir kitap rafındaki ciltlerin listesini alma
Bir kullanıcının herkese açık kitaplığındaki ciltlerin listesini, aşağıdaki biçimde bir URI isteği HTTP GET
isteği göndererek 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 alması için kullanıcının kimliğinin doğrulanması gerekmediğinden, GET
isteğini Authorization
HTTP üst bilgisiyle sağlamanız gerekmez.
Yanıt
İstek başarılı olursa sunucu bir 200 OK
HTTP durum kodu ve kullanıcının kitap rafları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
Herkese açık bir kitap rafındaki 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 birimler listesini sayfalara ayırabilirsiniz:
startIndex
: Koleksiyonda başlatılacak 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 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 listesini alma
URI'ya aşağıdaki biçimde bir HTTP GET
isteği göndererek kimliği doğrulanmış kullanıcının tüm kitap rafları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" kitap raflarının listesini alabilmek için kullanıcının kimliği doğrulanmalıdır. Bu nedenle, GET
isteğiyle birlikte Authorization
HTTP başlığını 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ı için 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ın listesini alırken standart sorgu parametrelerini kullanabilirsiniz.
Kitap rafımdaki ciltlerin listesini alma
URI'ya aşağıdaki biçimde bir HTTP GET
isteği göndererek kimliği doğrulanmış kullanıcının kitaplığındaki birimlerin listesini alabilirsiniz:
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes
shelf path parametresini kitap rafının kimliğiyle değiştirin. Kitap rafı kimlikleriyle ilgili 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" birimlerinin listesini alabilmek için kullanıcının kimliği doğrulanmalıdır. Bu nedenle GET
isteğini Authorization
HTTP üst bilgisiyle birlikte sağlamanız gerekir.
Yanıt
İstek başarılı olursa sunucu, 200 OK
HTTP durum kodu ve kitap rafı hacimlerinin 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 kitap raflarından birindeki cilt listesini alırken aşağıdaki sorgu parametresini kullanabilirsiniz.
Sayfalara ayırma
İsteğin parametrelerinde iki değer belirterek birimler listesini sayfalara ayırabilirsiniz:
startIndex
: Koleksiyonda başlatılacak konum. İlk öğenin dizini 0'dır.maxResults
: Döndürülecek maksimum sonuç sayısı. Varsayılan değer 10'dur.
Kitaplığıma cilt ekleme
Kimliği doğrulanmış kullanıcının kitap 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
shelf path parametresini kitap rafının kimliğiyle değiştirin. Kitap rafı kimlikleriyle ilgili daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.
İsteğin tek bir gerekli sorgu parametresi var:
volumeId
- Cildin kimliği. Cilt kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.
İstek
"Sık Kullanılanlar" kitap rafına "Algernon için Çiçek" ifadesini 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: Bir kitaplıkta değişiklik yapabilmek 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 kitap raflarından birine cilt eklerken standart sorgu parametrelerini kullanabilirsiniz.
Kitaplıktan bir cildi kaldırma
Kimliği doğrulanmış kullanıcının kitaplığındaki bir birimi kaldırmak için URI'ya aşağıdaki biçimde bir HTTP POST
gönderin:
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/removeVolume
shelf path parametresini kitap rafının kimliğiyle değiştirin. Kitap rafı kimlikleriyle ilgili daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.
İsteğin tek bir gerekli sorgu parametresi var:
volumeId
- Cildin kimliği. Cilt kimlikleri hakkında daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.
İstek
"Sık kullanılanlar" kitaplığından "Algernon Çiçekleri"ni içeren bir örnek aşağıda verilmiştir:
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: Bir kitaplıkta değişiklik yapabilmek 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 koduyla yanıt verir.
İsteğe bağlı sorgu parametreleri
Kimliği doğrulanmış kullanıcının kitap raflarının birinden bir birim 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çimde bir HTTP POST
gönderin:
https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/clearVolumes
shelf path parametresini kitap rafının kimliğiyle değiştirin. Kitap rafı kimlikleriyle ilgili daha fazla bilgi için Google Kitaplar Kimlikleri bölümüne bakın.
İstek
"Favoriler" kitap rafını temizlemeyle ilgili bir örneği aşağıda bulabilirsiniz:
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: Bir kitaplıkta değişiklik yapabilmek 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
durum koduyla yanıt verir.
İsteğe bağlı sorgu parametreleri
Kimliği doğrulanmış kullanıcının kitap raflarındaki 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ğerleri URL kodlamalı olmalıdır.
Standart sorgu parametreleri
Tüm Books API işlemleri için geçerli olan sorgu parametreleri, Sistem Parametreleri bölümünde belgelenmiştir.
API'ye özel sorgu parametreleri
Books API'deki yalnızca 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ıtlayın. |
|
|
filter |
Arama sonuçlarını hacim türüne ve kullanılabilirliğe göre filtreleyin. |
|
|
langRestrict |
Döndürülen birimleri, belirtilen dille etiketlenmiş birimlerle kısıtlar. |
|
|
maxResults |
Bu istekle birlikte döndürülecek maksimum öğe sayısı. |
|
|
orderBy |
Hacim arama sonuçlarının sırası. |
|
|
printType |
Kitaplarla veya dergilerle kısıtlayın. |
|
|
projection |
Döndürülen birim bilgilerini belirli alanlar alt kümesiyle sınırlayın. |
|
|
q |
Tam metin sorgu dizesi. |
|
|
startIndex |
Koleksiyonda sonuç listesinin başlatılacağı konum. |
|
|
volumeId |
İstekle ilişkili birimi tanımlar. |
|