Memulai

Dokumen ini menjelaskan pengetahuan dasar yang Anda butuhkan untuk menggunakan Google Books API.

Pengantar

Dokumen ini ditujukan bagi developer yang ingin menulis aplikasi yang dapat berinteraksi dengan Google Books API. Google Buku memiliki visi untuk mendigitalkan buku-buku di dunia. Anda dapat menggunakan Google Books API untuk menelusuri konten, mengatur koleksi pribadi pengguna yang diautentikasi dan mengubahnya juga.

Sebelum memulai

Mendapatkan Akun Google

Anda memerlukan Akun Google untuk tujuan pengujian. Jika sudah memiliki akun pengujian, Anda sudah siap; Anda dapat membuka antarmuka pengguna Google Buku untuk menyiapkan, mengedit, atau melihat data pengujian.

Mengenal Buku

Jika Anda belum memahami konsep Google Buku, Anda harus membaca dokumen ini dan bereksperimen dengan antarmuka pengguna sebelum mulai membuat kode. Dokumen ini mengasumsikan bahwa Anda sudah memahami konsep pemrograman web dan format data web.

Mempelajari cara mengizinkan permintaan dan mengidentifikasi aplikasi Anda

Saat aplikasi Anda meminta data pribadi, permintaan itu harus diizinkan oleh pengguna terautentikasi yang memiliki akses ke data tersebut.

Khususnya, semua operasi di bagian "My Library" di Google Books API dianggap bersifat pribadi dan memerlukan autentikasi serta otorisasi. Selain itu, setiap operasi yang mengubah data Google Buku hanya dapat dilakukan oleh pengguna yang memiliki data tersebut.

Saat aplikasi Anda meminta data publik, permintaan tidak perlu diizinkan, tetapi harus disertai dengan ID, seperti kunci API.

Untuk mengetahui informasi tentang cara mengizinkan permintaan dan menggunakan kunci API, lihat Mengizinkan permintaan dan mengidentifikasi aplikasi Anda dalam dokumen Menggunakan API.

Latar belakang Books API

Konsep buku

Google Buku dibangun berdasarkan empat konsep dasar:

  • Volume: Volume mewakili data yang dihosting Google Buku tentang buku atau majalah. Ini adalah resource utama di Books API. Semua resource lain dalam API ini berisi atau menganotasi volume.
  • Rak buku: Rak buku adalah kumpulan volume. Google Buku menyediakan serangkaian rak buku standar untuk setiap pengguna, beberapa di antaranya dikelola sepenuhnya oleh pengguna, beberapa di antaranya diisi secara otomatis berdasarkan aktivitas pengguna, dan beberapa di antaranya merupakan campuran. Pengguna dapat membuat, mengubah, atau menghapus rak buku lain, yang selalu diisi dengan volume secara manual. Rak buku dapat disetel menjadi pribadi atau publik oleh pengguna.

    Catatan: Membuat dan menghapus rak buku serta mengubah setelan privasi di rak buku saat ini hanya dapat dilakukan melalui situs Google Buku.

  • Ulasan: Ulasan tentang volume adalah kombinasi dari rating bintang dan/atau teks. Pengguna dapat mengirimkan satu ulasan per volume. Ulasan juga tersedia dari sumber eksternal dan diatribusikan dengan tepat.
  • Posisi Membaca: Posisi membaca menunjukkan posisi terakhir dibaca dalam volume untuk pengguna. Pengguna hanya dapat memiliki satu posisi baca per volume. Jika pengguna belum pernah membuka volume tersebut sebelumnya, posisi membaca tidak ada. Posisi baca dapat menyimpan informasi posisi mendetail hingga resolusi kata. Informasi ini selalu bersifat pribadi bagi pengguna.

Model data Books API

Resource adalah entitas data individual dengan ID unik. Books API beroperasi pada dua jenis resource, berdasarkan konsep yang dijelaskan di atas:

  • Resource volume: Merepresentasikan volume.
  • Resource rak buku: Merepresentasikan satu rak buku untuk pengguna tertentu.

Model data Books API didasarkan pada grup resource, yang disebut koleksi:

Pengumpulan volume
Kumpulan volume adalah kumpulan setiap resource volume yang dikelola oleh Google Buku. Dengan demikian, Anda tidak dapat mencantumkan semua resource volume, tetapi Anda dapat mencantumkan semua volume yang cocok dengan serangkaian istilah penelusuran.
Koleksi rak buku
Koleksi rak buku terdiri dari semua resource rak buku yang dikelola oleh Google Buku. Rak buku harus selalu dirujuk dalam konteks koleksi pengguna tertentu. Rak buku dapat berisi nol atau lebih volume.

Google menyediakan serangkaian rak buku standar untuk setiap pengguna:

  • Favorit: Rak buku yang dapat diubah.
  • Dibeli: Diisi dengan volume yang telah dibeli pengguna. Pengguna tidak dapat menambahkan atau menghapus volume secara manual.
  • Untuk Dibaca: Rak buku yang dapat diubah.
  • Baca Sekarang: Rak buku yang dapat diubah.
  • Sudah Dibaca: Rak buku yang dapat berubah.
  • Ditinjau: Diisi dengan volume yang telah ditinjau pengguna. Pengguna tidak dapat menambahkan atau menghapus volume secara manual.
  • Baru Dilihat: Diisi dengan volume yang baru dibuka pengguna di pembaca web. Pengguna tidak dapat menambahkan volume secara manual.
  • eBook Saya: Rak buku yang dapat diubah. Buku yang dibeli akan otomatis ditambahkan, tetapi dapat dihapus secara manual.
  • Buku untuk Anda: Diisi dengan rekomendasi volume yang dipersonalisasi. Jika kami tidak memiliki rekomendasi untuk pengguna, rak buku ini tidak ada.

Contoh rak buku:

  • "Favorit"
    • "Harry Potter"
  • "eBook Saya"
    • "Beralih"
    • "Twilight"
    • "The Girl with the Dragon Tattoo"

Operasi Books API

Anda dapat memanggil lima metode berbeda pada koleksi dan resource di Books API, seperti yang dijelaskan dalam tabel berikut.

Operasi Deskripsi Pemetaan HTTP REST
list Mencantumkan subset resource tertentu dalam koleksi. GET pada URI koleksi.
insert Menyisipkan resource baru ke dalam koleksi (membuat resource baru). POST pada URI kumpulan, tempat Anda meneruskan data untuk resource baru.
get Mendapatkan resource tertentu. GET pada URI resource.
update Memperbarui resource tertentu. PUT pada URI resource, tempat Anda meneruskan data untuk resource yang diperbarui.
hapus Menghapus resource tertentu. DELETE di URI resource, tempat Anda meneruskan data untuk resource yang akan dihapus.

Operasi yang didukung untuk berbagai jenis resource diringkas dalam tabel di bawah. Operasi yang berlaku untuk data pribadi pengguna disebut operasi "My Library", dan semuanya memerlukan autentikasi.

Jenis Resource
Operasi yang Didukung
list insert get update delete
Volumes ya* ya
Rak buku ya* ya, TERAUTENTIKASI ya* ya, TERAUTENTIKASI ya, TERAUTENTIKASI
Posisi Membaca ya, TERAUTENTIKASI ya, TERAUTENTIKASI ya, TERAUTENTIKASI ya, TERAUTENTIKASI

*Versi TERAUTENTIKASI dan tidak diautentikasi dari operasi ini tersedia, dengan permintaan terautentikasi beroperasi pada data "My Library" pribadi pengguna, dan permintaan tidak diautentikasi hanya beroperasi pada data publik.

Gaya panggilan

Ada beberapa cara untuk memanggil API:

  • Menggunakan REST secara langsung
  • Menggunakan REST dari JavaScript (tidak memerlukan kode sisi server)

REST

REST adalah gaya arsitektur software yang memberikan pendekatan yang praktis dan konsisten untuk meminta dan memodifikasi data.

Istilah REST adalah singkatan dari "Representational State Transfer". Dalam konteks Google API, REST merujuk pada penggunaan kata kerja HTTP untuk mengambil dan memodifikasi representasi data yang disimpan oleh Google.

Dalam sistem RESTful, resource disimpan di penyimpanan data; klien mengirim permintaan agar server melakukan tindakan tertentu (seperti membuat, mengambil, memperbarui, atau menghapus resource), dan server melakukan tindakan dan mengirim respons, sering kali dalam bentuk representasi resource yang ditentukan.

Di RESTful API Google, klien menentukan tindakan menggunakan kata kerja HTTP seperti POST, GET, PUT, atau DELETE. Kata kerja ini menentukan resource berdasarkan URI yang unik secara global dengan format berikut:

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

Karena semua resource API memiliki URI unik yang dapat diakses HTTP, REST memungkinkan caching data dan dioptimalkan untuk berfungsi dengan infrastruktur terdistribusi web.

Anda dapat memperoleh manfaat dari definisi metode dalam dokumentasi standar HTTP 1.1; dokumentasi tersebut menyertakan spesifikasi untuk GET, POST, PUT, dan DELETE.

REST di Books API

Operasi Buku yang didukung dipetakan langsung ke kata kerja HTTP REST, seperti yang dijelaskan dalam operasi Books API.

Format spesifik untuk URI Books API adalah:

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

dengan resourceID adalah ID untuk volume atau resource rak buku, dan parameters adalah parameter apa pun yang akan diterapkan ke kueri. Lihat Referensi parameter kueri untuk mengetahui detailnya.

Format ekstensi jalur resourceID memungkinkan Anda mengidentifikasi resource yang sedang Anda operasikan, misalnya:

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
...

Perhatikan bahwa operasi dengan mylibrary di URI hanya berlaku untuk data library pribadi pengguna yang saat ini diautentikasi. Kumpulan lengkap URI yang digunakan untuk setiap operasi yang didukung di API diringkas dalam dokumen Referensi Books API.

Berikut beberapa contoh cara kerjanya di Books API.

Lakukan penelusuran untuk quilting:

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

Mendapatkan informasi tentang volume s1gVAAAAYAAJ:

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

REST dari JavaScript

Anda dapat memanggil Books API menggunakan REST dari JavaScript (juga disebut JSON-P), menggunakan parameter kueri callback dan fungsi callback. Hal ini memungkinkan Anda menulis aplikasi kaya fitur yang menampilkan data Buku tanpa menulis kode sisi server.

Catatan: Anda dapat memanggil metode terautentikasi dengan meneruskan token OAuth 2.0 menggunakan parameter access_token. Untuk mendapatkan token OAuth 2.0 yang akan digunakan dengan JavaScript, ikuti petunjuk yang dijelaskan dalam OAuth 2.0 untuk aplikasi web sisi klien. Di tab "Akses API" di Konsol API, pastikan Anda menyiapkan Client ID untuk aplikasi web, dan menggunakan kredensial OAuth 2.0 tersebut saat mendapatkan token.

Contoh berikut menggunakan pendekatan ini untuk menampilkan hasil penelusuran "harry potter":

<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>

Format data

JSON

JSON (JavaScript Object Notation) adalah format data umum independen bahasa yang memberikan representasi teks sederhana untuk struktur data arbitrer. Untuk informasi selengkapnya, lihat json.org.