バーコード(ASIN)によるデータ取得APIを作成するという話
皆さん!読書していますか?
読書の世界は良いです。
と言う私はあんまり出来ていないのですね。
今回は、ズバリ!言うわよ。本の一覧を作成する便利APIを作成しました!
ま、動きは超シンプルです。バーコード情報ソースにAmazonを使っていますのでASINコードを渡してあげるとその書籍のタイトル、著者、価格、カバー画像、商品リンクを作成してくれると言うシンプル系です
実際にできあがりを見て貰いましょう
http://test.mmpp.org/amazon_api/test.html
ねっ、シンプルでしょ。
入力欄と、実行ボタンだけです。
入力欄にASINコードを入力して、Scanボタンを押しますと…
商品があれば、下に一覧として表示されていきます。
ソースは激烈シンプル
https://github.com/wataru775/amazon_api/blob/master/public/test.html
ポイントとなる部分は、下の部分です
$.ajax({
url: "http://api.mmpp.org/amazon/searchItems?ASIN=" + asin,
}).then(
function(data, status, xhr) {
if(data.code === 200 ) {
for (let i = 0; i < data.results.length; i++) {
let book = data.results[i];
$("div#cards").append(createBookCard(book));
}
return;
}
showAlert(data.message);
},
function(xhr, status, error) {
// 通信失敗時の処理
}
);
Ajaxを使って通信、http://api.mmpp.org/amazon/searchItemsというAPIにASINを投げる。
JSONが返るので、それを解析してカードに登録する。
って、HTMLの表示は良いですが、キモはAPI部分です。
Laravelで書きましたのでサービス部分が色々ありますが、受けたASINをAmazonへと投げ込んでいるのは下のソース
https://github.com/wataru775/amazon_api/blob/master/app/Services/Amazon/AmazonService.php
たいした内容無いんだよなぁ ソース8割はAmazonが提供しているしw
概略ではこんな感じ、枠で括っている部分がAPI部分で枠外がHTMLです。

これだけ?って程度ですが、ミニマムスタートが良いところです。
今回は、単純にデータをとってくるだけでした。
保存もしなければ、ログインなんかもありません。
リンククリックすると、広告になっているのでお金が入りますw
次回は… どうしようかな。ログイン機能を設けて会員の場合なんかを考えてみましょうかね