Başlayın

Bu dokümanda, Google Books API'yi kullanmak için ihtiyacınız olan arka plan bilgileri ayrıntılı olarak açıklanmaktadır.

Giriş

Bu doküman, Google Books API ile etkileşimde bulunabilecek uygulamalar yazmak isteyen geliştiriciler için hazırlanmıştır. Google Kitaplar, dünyadaki kitapları dijital hale getirmeyi hedefliyor. İçerik aramak, kimliği doğrulanmış bir kullanıcının kişisel kitaplığını düzenlemek ve değiştirmek için Google Books API'yi kullanabilirsiniz.

Başlamadan önce

Google Hesabı edinin

Test amaçlı olarak bir Google hesabınız olması gerekir. Zaten bir test hesabınız varsa hazırsınız demektir; test verilerinizi oluşturmak, düzenlemek veya görüntülemek için Google Kitaplar kullanıcı arayüzünü ziyaret edebilirsiniz.

Kitaplar hakkında bilgi edinin

Google Kitaplar kavramları hakkında bilginiz yoksa bu dokümanı okumanız ve kodlamaya başlamadan önce kullanıcı arayüzü ile denemeler yapmanız gerekir. Bu dokümanda, web programlama kavramları ve web veri biçimleri hakkında bilgi sahibi olduğunuz varsayılmaktadır.

İstekleri yetkilendirme ve başvurunuzu tanımlama hakkında bilgi edinin

Uygulamanız gizli veri isteğinde bulunduğunda isteğin, söz konusu verilere erişimi olan kimliği doğrulanmış bir kullanıcı tarafından yetkilendirilmesi gerekir.

Özellikle Google Books API'deki "Kitaplığım" bölümünde belirtilen tüm işlemler gizli kabul edilir ve kimlik doğrulama ile yetkilendirme gerektirir. Ayrıca Google Kitaplar verilerinde değişiklik yapan tüm işlemler, yalnızca verilerin sahibi olan kullanıcı tarafından gerçekleştirilebilir.

Uygulamanız herkese açık veriler istediğinde isteğin yetkilendirilmesi gerekmez ancak API anahtarı gibi bir tanımlayıcıyla birlikte kullanılması gerekir.

İstekleri yetkilendirme ve API anahtarlarını kullanma hakkında bilgi edinmek için API'yi Kullanma dokümanındaki İstekleri yetkilendirme ve uygulamanızı tanımlama bölümüne bakın.

Books API arka planı

Kitap kavramları

Google Kitaplar dört temel kavrama dayanır:

  • Hacim: Cilt, Google Kitaplar'ın bir kitap veya dergi hakkında barındırdığı verileri temsil eder. Books API'nin birincil kaynağıdır. Bu API'deki diğer tüm kaynaklar bir cilt içeriyor veya açıklama içeriyor.
  • Kitap rafı: Kitaplık, ciltlerden oluşan bir koleksiyondur. Google Kitaplar her kullanıcı için, bazıları tamamen kullanıcı tarafından yönetilen, bazıları da kullanıcının etkinliğine göre otomatik olarak doldurulan ve bazıları karma olan, önceden tanımlanmış bir dizi raf sağlar. Kullanıcılar, diğer kitap rafları oluşturabilir, değiştirebilir veya silebilir. Bu raflar her zaman manuel olarak hacimlerle doldurulur. Kitaplıklar kullanıcı tarafından gizli veya herkese açık hale getirilebilir.

    Not: Kitap raflarında gizlilik ayarlarını değiştirmenin yanı sıra kitap rafları oluşturma ve silme işlemleri şu anda yalnızca Google Kitaplar sitesi üzerinden yapılabilir.

  • Yorum: Hacim incelemesi, yıldız puanının ve/veya metnin kombinasyonudur. Bir kullanıcı cilt başına bir yorum gönderebilir. Yorumlar harici kaynaklardan da edinilebilir ve uygun şekilde ilişkilendirilmiştir.
  • Okuma Konumu: Okuma konumu, kullanıcının ses seviyesindeki son okuma konumunu gösterir. Bir kullanıcı, cilt başına yalnızca bir okuma konumuna sahip olabilir. Kullanıcı daha önce bu hacmi açmamışsa okuma konumu mevcut değildir. Okuma konumu, bir kelimenin çözünürlüğüne kadar ayrıntılı konum bilgilerini depolayabilir. Bu bilgiler her zaman kullanıcıya özeldir.

Books API veri modeli

Kaynak, benzersiz bir tanımlayıcıya sahip bağımsız bir veri varlığıdır. Books API, yukarıda açıklanan kavramlara dayalı olarak iki tür kaynakta çalışır:

  • Hacim kaynağı: Birimi temsil eder.
  • Kitap rafı kaynağı: Belirli bir kullanıcı için tek bir kitaplık rafını temsil eder.

Books API veri modeli, koleksiyon adı verilen kaynak gruplarına dayanır:

Hacim toplama
Hacim koleksiyonu, Google Kitaplar tarafından yönetilen her hacim kaynağının koleksiyonudur. Bu nedenle, tüm hacim kaynaklarını listeleyemezsiniz ancak bir arama terimleri grubuyla eşleşen tüm hacimleri listeleyebilirsiniz.
Kitap rafı koleksiyonu
Kitap rafı, Google Kitaplar tarafından yönetilen tüm kitaplık kaynaklarından oluşur. Kitaplıklara her zaman belirli bir kullanıcının kitaplığı bağlamında referans verilmelidir. Kitaplıklar sıfır veya daha fazla cilt içerebilir.

Google, her kullanıcı için önceden tanımlanmış bir dizi raf sağlar:

  • Favoriler: Değişken kitaplık.
  • Satın alınan: Kullanıcının satın aldığı hacimlerle doldurulur. Kullanıcı, ciltleri manuel olarak ekleyemez veya kaldıramaz.
  • Okunaklı: Değişken kitaplık.
  • Şimdi Okunuyor: Değişken kitaplık.
  • Kitabın adı: Değişmeyen kitaplık.
  • İncelendi: Kullanıcının incelediği hacimlerle doldurulur. Kullanıcı, ciltleri manuel olarak ekleyemez veya kaldıramaz.
  • Son Görüntülenenler: Kullanıcının bir web okuyucusunda açtığı son hacimlerle doldurulur. Kullanıcı, hacimleri manuel olarak ekleyemez.
  • E-Kitaplarım: Değişken kitaplık. Satın alınan kitaplar otomatik olarak eklenir ancak manuel olarak kaldırılabilir.
  • Size Özel Kitaplar: Kişiselleştirilmiş hacim önerileriyle doldurulur. Kullanıcı için önerimiz yoksa bu kitaplık yoktur.

Örnek kitaplıklar:

  • "Favoriler"
    • "Harry Potter"
  • "e-Kitaplarım"
    • "Değiştir"
    • " Alacakaranlık"
    • "The Girl with the Dragon Dövmesi"

Books API işlemleri

Aşağıdaki tabloda açıklandığı gibi Books API'deki koleksiyonlar ve kaynaklarda beş farklı yöntem çağırabilirsiniz.

İşlem Açıklama REST HTTP eşlemeleri
list Bir koleksiyondaki kaynakların belirli bir alt kümesini listeler. Koleksiyon URI'sinde GET.
ekle Koleksiyona yeni bir kaynak ekler (yeni kaynak oluşturur). Yeni bir kaynak için verileri ilettiğiniz koleksiyon URI'sinde POST.
edin Belirli bir kaynağı alır. Kaynak URI'sinde GET.
güncelle Belirli bir kaynağı günceller. Kaynak URI'sinde PUT. Bu kaynak, güncellenen kaynak için verileri iletir.
sil Belirli bir kaynağı siler. Silinecek kaynak için verileri ilettiğiniz kaynak URI'deki DELETE.

Çeşitli kaynak türleri için desteklenen işlemler aşağıdaki tabloda özetlenmiştir. Kullanıcının özel verileri için geçerli olan işlemlere "Kitaplığım" adı verilir ve bu işlemlerin tamamı kimlik doğrulama gerektirir.

Kaynak Türü
Desteklenen İşlemler
listesi ekle edin güncelleme sil
Hacimler evet* evet
Kitap rafları evet* evet, DOĞRULANDI evet* evet, DOĞRULANDI evet, DOĞRULANDI
Okuma Konumları evet, DOĞRULANDI evet, DOĞRULANDI evet, DOĞRULANDI evet, DOĞRULANDI

*Bu işlemlerin hem AUTHENTICATED hem de kimliği doğrulanmamış sürümleri kullanılabilir. Bu sürümlerde, kimliği doğrulanmış istekler kullanıcının gizli "Kitaplığım" verilerinde, kimliği doğrulanmamış istekler ise yalnızca herkese açık verilerde çalışır.

Arama stilleri

API'yi çağırmanın birkaç yolu vardır:

  • Doğrudan REST kullanma
  • JavaScript'ten REST kullanma (sunucu tarafı kodu gerekmez)

REST

REST, veri isteme ve değiştirmeye kullanışlı ve tutarlı yaklaşım sağlayan bir yazılım mimarisi stilidir.

REST terimi, "Representational State Transfer"in (Temsili Durum Aktarımı) kısaltmasıdır. Google API'leri bağlamında, Google tarafından saklanan verilerin temsillerini almak ve değiştirmek için HTTP fiillerini kullanma anlamına gelir.

RESTful bir sistemde, kaynaklar bir veri deposunda saklanır. Bir istemci, sunucunun belirli bir işlemi (ör. kaynak oluşturma, alma, güncelleme veya silme) gerçekleştirmesi için istek gönderir. Sunucu, işlemi gerçekleştirir ve yanıt gönderir. Bu yanıt genelde belirtilen kaynağın bir temsili biçimindedir.

Google'ın RESTful API'lerinde istemci, HTTP fiilini kullanarak POST, GET, PUT veya DELETE gibi bir işlem belirtir. Bir kaynağı aşağıdaki biçimdeki global olarak benzersiz bir URI ile belirtir:

https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters

Tüm API kaynaklarının HTTP tarafından erişilebilen benzersiz URI'ları olduğu için REST, veri önbelleğe almayı etkinleştirir ve web'deki dağıtılan altyapıyla birlikte çalışmak üzere optimize edilmiştir.

HTTP 1.1 standartları dokümanlarındaki yöntem tanımlarını yararlı bulabilirsiniz. Bu tanımlar, GET, POST, PUT ve DELETE özelliklerini içerir.

Books API'de REST

Desteklenen Kitaplar işlemleri, Books API işlemlerinde açıklandığı gibi doğrudan REST HTTP fiilleriyle eşlenir.

Books API URI'ları belirli bir biçime sahiptir:

https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters

Burada resourceID, bir birimin veya kitaplık rafının tanımlayıcısıdır ve parameters sorguya uygulanacak tüm parametrelerdir. Ayrıntılar için Sorgu parametresi referansı bölümüne bakın.

resourceID yol uzantılarının biçimi, şu anda üzerinde çalıştığınız kaynağı belirlemenize olanak tanır. Örneğin:

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

URI'da mylibrary içeren işlemlerin yalnızca kimliği doğrulanmış kullanıcının gizli kitaplık verileri için geçerli olduğunu unutmayın. API'de desteklenen her işlem için kullanılan URI'ların tam kümesi Books API Referansı belgesinde özetlenmiştir.

Aşağıda, Kitaplar API'sinde nasıl işlediğine ilişkin birkaç örnek verilmiştir.

Yorgan için arama yapın:

GET https://www.googleapis.com/books/v1/volumes?q=quilting

s1gVAAAAYAAJ ile ilgili bilgi edinin:

GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJ

JavaScript'ten REST

JavaScript API'sinden REST'yi (JSON-P olarak da adlandırılır) kullanarak callback sorgu parametresini ve bir geri çağırma işlevini kullanarak Books API'yi çağırabilirsiniz. Bu, sunucu tarafı kodu yazmadan Kitaplar verilerini gösteren zengin uygulamalar yazmanıza olanak tanır.

Not: access_token parametresini kullanarak bir OAuth 2.0 jetonu ileterek kimliği doğrulanmış yöntemleri çağırabilirsiniz. JavaScript ile kullanmak üzere bir OAuth 2.0 jetonu almak için İstemci tarafı web uygulamaları için OAuth 2.0'da açıklanan talimatları uygulayın. API Konsolu'nun "API Erişimi" sekmesinde, web uygulamaları için bir istemci kimliği oluşturduğunuzdan ve jetonunuzu alırken bu OAuth 2.0 kimlik bilgilerini kullandığınızdan emin olun.

Aşağıdaki örnekte, "harry pottter" için arama sonuçları görüntülenirken bu yaklaşım kullanılmaktadır:

<html>
  <head>
    <title>Books API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function handleResponse(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.text should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.volumeInfo.title;
      }
    }
    </script>
    <script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script>
  </body>
</html>

Veri biçimi

JSON

JSON (JavaScript Object Notation [JavaScript Nesne Gösterimi]), rastgele veri yapılarının basit metin gösterimini sağlayan yaygın bir dilden bağımsız veri biçimidir. Daha fazla bilgi için json.org adresine bakın.