Webサイト専門プログラマの言いたい放題

元システムエンジニアがサイト制作とプログラミングについて好き放題しゃべります。

【AmazonAPI 色違い商品のASIN】

f:id:wp-lesson:20151026124328j:plain
色やサイズなど「規格」を持つ商品は
2つのASINを持つようです。
 
1.商品の種類を特定する「親ASIN」
2.規格別の商品を特定する「子ASIN」
 
例えば、青と赤のバリエーションを持つ
商品Aがあったとするとこんな感じ。
 
親ASIN:XXXXXXXXXX
青ASIN:YYYYYYYYYY
赤ASIN:ZZZZZZZZZZ
 
私たちユーザーがブラウザで見るときは
ASINの違いを意識する必要はありません。
 
どちらかの商品ページを開けば、
他のバリエーションも見れるからです。
 
でも、プログラムから見るときは
そうはいきません。
 
青ASINでAPIをコールして得られるのは
青の商品情報だけだからです。
 
はじめから色毎のASINが分っていれば、
青の情報は青ASINで取得し、
赤の情報は赤ASINで取得するだけで
済みます。
 
バリエーションが不明の場合は、
いずれかの色のASINで取得した情報に
含まれる親ASINを使って、もう一度
APIをコールする必要があります。
 
1.バリエーションの数を取得(1コール目)
 →子ASINが得られる。
2.青ASINで青の情報を取得(2コール目)
3.赤ASINで赤の情報を取得(3コール目)
 
仮に100種類の商品を管理している場合、
このようにバリエーションから調べる
ロジックを組み込むとどうなるか?
 
1商品ごとに最低3回のAPIコールとなり、
APIの利用制限に抵触しかねませんし、
コールとコールの間の待機時間(ウェイト)
も累積的に増えますから、
結構ストレスになると思うんですよね。
 
APIの既定によると、
 
APIのコールは1秒に1回以内を推奨」
 
だそうですので。
 

まとめ

 
プログラミングの難しいところは、
目的の実現を妨げる様々な制約と
どう折り合いを付けるか模索する
ところにあると常々感じます。