[blogcard url=”https://wakabatimes.com/2018/09/20/222/”]
[blogcard url=”https://wakabatimes.com/2018/09/20/226/”]
こんな記事を配信しましたが、こちらはamazonのapiを使って自動で情報を取得してランキングを作ってます。ただこのAPI使うだけだと常にリアルタイムな情報になってしまうので、こんな簡易バッチを作りました。
①指定したカテゴリのAPIを取得
↓
②取得した情報をjson形式で保存
言語はJAVAでフレームワークはSpringBootを使用しています。
バッチアプリをSpringbootで作ってみたいという思惑があったので、練習がてら作ってます。
作り方
ひな型作成
[blogcard url=”https://start.spring.io/”]
スプリングイニシャライザーでWEBをdependenciesに追加してひな型作成
このへんとか
[blogcard url=”https://qiita.com/MariMurotani/items/9f898741ad1f40507ab8″]
このへん
[blogcard url=”https://qiita.com/niwashun/items/c52e890180754bf0bc25″]
見ながらバッチの枠組み作成
API取得
このへん見ながらAmazonのAPIの取得方法を学ぶ
[blogcard url=”https://qiita.com/someone7140/items/df3514b3d139c1b94ef9″]
完成
完成品がこちら
[blogcard url=”https://github.com/tachikawaYutaka/amazon_ranking_api_batch”]
使い方
サーバに接続してコマンドラインで
java -jar amazon_rank_api_batch-v1.0.jar samaple_param1.json sample_param2.json save_dir save_file_name.json
を入力します。
samaple_param1.jsonはAPI利用するにあたってのアクセス情報になります。
{"accessKeyId":"0123456789",
"secretKey":"0123456789",
"endpoint":"webservices.amazon.co.jp"}
accessKeyIdやsecretKeyは自分で取得したものを使用します。
sample_param2.jsonは情報を取得するにあたっての設定情報になります。
{"service":"AWSECommerceService",
"operation":"BrowseNodeLookup",
"awsAccessKeyId":"aaaaaaaaaaaaaaaa",
"associateTag":"aaaaaaaaaaaaaaaa",
"browseNodeId":"2275256051",
"responseGroup":"TopSellers"}
awsAccessKeyIdやassociateTagは自分で取得したものを使用します。
browseNodeIdは商品のカテゴリーID的なものになります。
[blogcard url=”https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html?BrowseNodeIDs.html”]
この辺見ると対応するIDがわかります。
こちらをcronで定期的に実行しておけば、ある時点の情報が自動的に取得・蓄積できます。
こちらからは以上です。