はじめに
7月31日から8月6日まで、ひたすら家にこもって大手ショッピングサイト4社(Amazon、楽天、ヤフーショッピング、DMM)のAPIをハックしました。そして、4社の商品検索を一度にできるサービスを作ったので公開します。登録不要、完全無料です。 Shirable ショップぜんぶ調べよう
解説
※上記画像は今、私が欲しいものです。我が子はかわいい。 ※なお、2016年8月6日時点で、DMMはまだ許可が降りないので未実装です。 Shirableをひとことで言えば、価格コムの劣化コピーです。各社の比較をメインにしたかったので私のサービスを比較コムという名前で出そうと思ったんですが、なんと既に上場企業としてありました。比較コムは価格コムと同様のことができるようですが、違いはよくわかりません。ということで、私のサービスは各社の商品を「調べられる」=「調べる」+「able」=「Shirable」という名前にしました。 特徴としては、Amazonと楽天、ヤフーショッピング、DMMの検索結果を並列して閲覧できることです。価格の比較ではなく、検索結果の比較です。狙いは2つあります。
- 商品の検索結果のバリエーションを増やす
- 各社の検索結果の傾向を比較する
どちらも「各社の検索アルゴリズムの違いを見る」という点で同じですが、価格の比較だけでなく、商品ラインナップの網羅性を上げて欲しい商品を早く見つけることができ(る気がし)ます。 今は検索主眼のサービスですが、そのうちに各社の売れ筋商品をデフォルトで表示できるようにします。今はリクエスト毎に各社のAPIを叩きに行ってしまうので、API制限に引っかかってしまいスケールしていません。そのうちにキャッシュやDB使ってスケールするようにします。 ※Shirableは勉強目的で、これからもっとゴリゴリ使える別のサービス作るつもりなので、需要がよほどあればスケール考えます。
実装について
技術ブログなので技術的な解説をします。各社のAPIのプログラミングのノウハウについては別の独立した記事で解説します。 まず、インフラはGoogle Cloud Platformを採用しました。これはApitoreと同じインフラです。バックエンドはSpring-bootとSpring-Cloud-Netflixです。今のところサービス自体は1日100万アクセスに堪えられますが、各社のAPI制限が1秒に1回までなので、実際は同時に複数人から検索リクエスト出されると厳しいです。 フロントはBootstrapです。多少CSSはカスタマイズしています。Thymeleafも使っています。レスポンシブデザインになっているので携帯からも閲覧できます。
使い方
好きなジャンルを指定して、好きなキーワードで検索してください。検索結果は各社毎に分けて表示しています。商品をクリックすると各社の販売ページに飛ぶようになっています。 例えば「ソファ」で検索して、各社でどんなソファが売れているかを調べるという使い方を想定しています。他にも「ダイニングテーブル」とか「扇風機」とか、特定の商品ではなく商品ジャンルで検索すると欲しいものが見つかりやすいと思います。買いたい商品が明確な人は、各社でそれぞれ検索するとか、価格コムで最安値を探すと良いと思います。もちろん、商品見つけてから価格コムで最安値を探しても良いです。一応Shirableでも商品名で検索すれば4社の価格比較はできます。 「ソファ」の検索結果 「ダイニングテーブル」の検索結果
おわりに
夏休みの自由研究としてShopping APIのハッカソンを行いました。実際は1週間丸々使っているので全然ハッカソンでは通用しませんが(笑)。この経験でShopping系のAPIはある程度使いこなせるようになりましたし、Java SDKが公開されていないAPIの扱いもだいぶできるようになりました。だいぶAPIを使う側の気持ちがわかってきましたので、Apitoreの改善にも力を入れていきたいと思います。
TODO
- ページング機能
- iPhone SE向けにサイトを最適化
- 各社のランキングを統合した独自のランキングアルゴリズムの開発