LaravelLogo.pngのサムネイル画像


Laravelへの機能実装を進めながら泥縄でいろいろ勉強するということをしています。で、ある機能を実装するのにフロントエンドはVueで実装して、データはサーバ側で取得してJSONで渡そうかというようなことを考え、APIを実装してみました。とりあえずサンプルなので使うデータは何でも良かったんですが、あとで使えるようにってことでAmazonの商品情報API(Amazon Product Advertising API)を使うことに。ASINを渡すと商品情報のJSONを返してくれるだけのシンプルなAPIです。


参考にさせて頂いた記事はこちら。

Laravel用AmazonAPIモジュール - Sheltie's Garage


環境準備

Laravel用Amazon Product Advertising APIモジュールのインストール

まず、Laravel用Amazon Product Advertising APIモジュールをインストールします。

kawax/laravel-amazon-product-api

例によってcomposerで持ってきて、登録するだけです。

composer require revolution/laravel-amazon-product-api
php artisan vendor:publish --provider="Revolution\Amazon\ProductAdvertising\Providers\AmazonProductServiceProvider"

その昔、PECLとかのライブラリ使ってあれこれやってましたけど、言ってみればそれのフレームワーク版ですよね。環境は違えど考えることは同じです。便利なものは共有したいし。


.envファイルの設定

.envファイルを編集して以下の設定を追加します。

AMAZON_API_KEY=*****
AMAZON_API_SECRET_KEY=*****
AMAZON_ASSOCIATE_TAG=*****
AMAZON_COUNTRY=co.jp

API KEYは各自取得してくださいね。
(なんか最近審査が厳しくなってるみたいですけど)

以上で設定は終わりです。



ルーティングの設定

次はルーティングの設定。URIとしてはこんな感じで動くのを想定しています。

https://example.com/api/asin/B00C9QZNKU

routes/api.php


app/Http/Controllers/AmazonAsinApiController.php



これだけ。

これだけで、https://example.com/api/asin/B00C9QZNKU にGETリクエストを投げると商品情報がJSONで返ってくるようになります。


20190516_ss.png


あとはそれをフロントエンドでごにょごにょすればOK。超簡単。

api.phpのとこ、showしか使わないならresourceである必要ないだろっていう気がビンビンにしますが、本当にこれしか機能がないならこれでもいいかも知れません。




まとめ

超簡単です。なるべくコードを書かなくて良いように出来てる。

フレームワークを理解していなかった昔は「そんなの関係ねー」とか言って俺俺コードを書いて満足してましたが、もうそんなの面倒くさくてやってられない体になってしまいました。その分他の開発に時間を割けるわけで、技術の進歩ってこういうことですよね、って日々思ってます。
  • About

    I'm a web designer/programmer in Kyoto, Japan. Also work as a blogger, DJ.

    NOBODY:PLACE is my personal blog since 1998. Everything I'm interested in is here.

    See Also
    Other Works
    Feed
  • Recent Hatena Bookmark
  • Monthly Archives
    Categories