##はじめに
GoogleBooksAPIを使うと様々な条件で書籍の検索ができます。
ややこしい登録や認証が不要なのでとても使いやすいです。
ですがISBNコードで書籍を検索するときはちょっと注意が必要という話です。
##忙しい人のために
ISBNで検索するときは、
https://www.googleapis.com/books/v1/volumes?q=search+isbn=[ISBN10]
じゃなくて
https://www.googleapis.com/books/v1/volumes?q=isbn:[ISBN10]
で検索しよう。
##説明
GoogleBooksAPIによると検索APIの基本形は以下のようになっています。
この"terms"の部分に検索パラメータを当てはめればOKということらしいです。
例えばISBN10で検索したいときは次のURLになるわけです。
ですがこのURLでリクエストを送ると書籍が4つも返ってきます(実際の結果は上記URL参照)。
Title | ISBN10 |
---|---|
C++ FAQ | 489471194X |
雲の王 | 4087453405 |
エキスパート Cプログラミング | 4756116396 |
C言語ポインタ完全制覇 | 4774111422 |
ISBNでちゃんと検索できているのは最初の一冊だけです。
「雲の王」というのは普通の小説なので関連性もありません。
なぜ固有IDであるはずのISBNで複数の本が引っかかるのかというと、どうやらレスポンスの"PreviewLink"という項目の値に検索対象のISBNと同じ文字列が入っているからのようです。
"previewLink":http://books.google.co.jp/books?id=QRkPswEACAAJ&dq=search+isbn%3D489471194X&hl=&cd=2&source=gbs_api
結局のところISBNで正しく検索するためのURLは次の形式になります。
https://www.googleapis.com/books/v1/volumes?q=isbn:[ISBN10]
今度はちゃんとISBNで検索できます。
- ISBN10じゃなくてISBN13を使ってももちろんOKです。
- 他の検索パラメータでも同じ事象があるかもしれませんが、試していません。