バーコード(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

次回は… どうしようかな。ログイン機能を設けて会員の場合なんかを考えてみましょうかね