LoginSignup
5
2

More than 3 years have passed since last update.

Google Books APIの使い方~その2~

Last updated at Posted at 2020-08-15

前回からの続きです。

今回は「Google Books APIの呼び出し方」についてです。

本記事はGoogle Books APIの開発者向けサイトを翻訳して簡潔にまとめたものです。

Google Books APIの呼び出し方

呼び出し方は以下の2つがあります。
1. RESTを直接使用する
2. 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の操作は認証されているユーザのプライベートデータのみに適用されます。
userIdshelfvolumeIdに取得したい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で取得できていることが確認できます。

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

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」です。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2