【AmazonAPI 色違い商品のASIN】
色やサイズなど「規格」を持つ商品は
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回以内を推奨」
だそうですので。
まとめ
プログラミングの難しいところは、
目的の実現を妨げる様々な制約と
どう折り合いを付けるか模索する
ところにあると常々感じます。