前書き
これは、本を読むのが好きだけど探すのが嫌いな僕が、適当な説明文を書いておけば誰かが勝手におすすめのものを教えてくれる「積んでけ」というサービスを作った際に学んだことを書いているものです。
Product Advertising APIがエラーを返答する
昔、AmazonのProduct Advertising APIを使って本を検索するWebアプリを作った事があったので、そのWebアプリを流用して作ろうとしたところ、You are submitting requests too quickly. Please retry your requests at a slower rate.
というエラーが返答されて使えなくなっていました。調べてみたところ、以下のポリシー変更が行われていたようです。
[重要] Product Advertising API 利用ポリシーの変更について
売上実績の発生がない場合は、PA-APIの利用開始はできません。
また、発送済み商品売上が過去30日以内に発生していない場合、PA-APIをご利用いただけなくなる恐れがございます。
サービスを作らないと売上実績は作れないけど、サービスを作るためにはProduct Advertising APIで商品を検索する必要があるというデッドロック状態にハマってしまったわけですが、本を検索するだけでよければGoogle Books APIという便利なものがあります。
Google Books APIの使い方
Google Books APIを使った本の検索は Volume
APIを使うことになります。search terms
の部分に検索文文字を入れることで検索することができます。
GET https://www.googleapis.com/books/v1/volumes?q={search terms}
返答されるJsonは以下のURLに記載されています。
Google Books APIs - Volume Resource Representations
Goolg Books APIで返答される値には一般販売されているものとは限りません。一般販売されているものだけを使いたい場合は、 volumeInfo.industryIdentifiers[]
のtypeの値がISBN_10
かISBN_13
であるパラメータが存在するかどうかで判定すれば良いと思います。
宣伝
もし興味があれば使ってくれると嬉しいです。
世界にはあなたやわたしがまだ出会っていないすばらしいものが無数に存在します。 あなたが知っている素晴らしいものは、だれかが探し続けているものかもしれません。 あなたが探し続けているものは、だれかがすでに素晴らしいと思って使っているものかもしれません。 「積んでけ」はだれもが気軽に軽い気持ちで自分が知っている素晴らしいものを教えあうサービスを目指しています。