前回からの続きです。
今回は「Google Books APIの呼び出し方」についてです。
本記事はGoogle Books APIの開発者向けサイトを翻訳して簡潔にまとめたものです。
#Google Books APIの呼び出し方
呼び出し方は以下の2つがあります。
- RESTを直接使用する
- JavaScriptからRESTを使用する
1. RESTを直接使用する
URIは以下の形式です。
https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters
resourceIDはボリュームまたはブックシェルフリソースの識別子です。
parametersはクエリに適用する任意のパラメーターです。
詳細はAPI Referenceにありますが、以下にその内容を記載します。
・REST URIの先頭には「 https://www.googleapis.com/books/v1 」をつけてください。
・mylibraryの操作は認証されているユーザのプライベートデータのみに適用されます。
・userId、shelf、volumeIdに取得したいUserId、BookshelfId、VolumeIdをセットします。
Bookshelf
メソッド | REST URI | 説明 |
---|---|---|
list | GET /users/userId/bookshelves | 指定したユーザーのパブリックBookshelfリソースのリストを取得 |
get | GET /users/userId/bookshelves/shelf | 指定されたユーザーの特定のBookshelfリソースを取得 |
Volume
メソッド | REST URI | 説明 |
---|---|---|
get | GET /volumes/volumeId | IDに基づいてボリュームリソースを取得 |
list | GET /volumes?q={search terms} | ボリュームの検索 |
Bookshelves.volumes
メソッド | REST URI | 説明 |
---|---|---|
list | GET /users/userId/bookshelves/shelf/volumes | 指定されたユーザーの特定の本棚にあるボリュームを取得 |
Mylibrary.bookshelves
メソッド | REST URI | 説明 |
---|---|---|
addVolume | POST /mylibrary/bookshelves/shelf/addVolume | 本棚にボリュームを追加 |
clearVolumes | POST /mylibrary/bookshelves/shelf/clearVolumes | 本棚からすべてのボリュームをクリア |
get | GET /mylibrary/bookshelves/shelf | 認証されたユーザーに属する特定の本棚のメタデータを取得 |
list | GET /mylibrary/bookshelves | 認証されたユーザーの本棚のリストを取得 |
moveVolume | POST /mylibrary/bookshelves/shelf/moveVolume | 本棚内のボリュームを移動 |
removeVolume | POST /mylibrary/bookshelves/shelf/removeVolume | 本棚からボリュームを削除 |
Mylibrary.bookshelves.volumes
メソッド | REST URI | 説明 |
---|---|---|
list | GET /mylibrary/bookshelves/shelf/volumes | 本棚のボリュームのボリューム情報を取得 |
検索例
「Python」に関する本を検索したい場合は以下のように記述します。
実行すると結果がJSONで取得できていることが確認できます。
VolumeIdを指定して取得する場合は以下のように記述します。
GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJ
##2. JavaScriptからRESTを使用する
JavaScriptからRESTを使用し、クエリパラメータとコールバック関数を使用して、APIを呼び出すことができます。
access_tokenパラメーターを使用してOAuth 2.0トークンを渡すことにより、認証されたメソッドを呼び出すことができます。
<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>
#最後に
以上、「Google Books APIの呼び出し方」でした。
次回は「Googleブックスで使用されるID」です。