こんにちは。 Web 担当の真谷(シンガイ)です。私は Web 担当と言うことで、Web API と付き合う機会があります。
Web API を触っていると大幅な仕様変更・急な仕様変更が少なからずあり、その都度対応をしています。
Sleipnir Start の Amazon ランキングでも使用している Amazon Product Advertising API (以下 APAAPI)も 2011年10月26日 に仕様変更があります。
この仕様変更で頭を悩ませている方が多いのではないでしょうか。今回は特に問題が発生しそうな仕様変更を2つピックアップして説明します。
Offers(出品者情報)の縮小
今までは出品者の情報が OfferPage の数だけ取得できたのですが、仕様変更後、中古・新品・コレクター価格の最安値の出品者情報しか取得できないようになります。
代わりに、MoreOffersUrl という Amazon の商品ページの他の出品者情報を確認できる URL があるので、これを使用することで他の出品者情報へ遷移させます。
仕様変更前
<Offers> <TotalOffers>10</TotalOffers> <TotalOfferPages>1</TotalOfferPages>
仕様変更後
<Offers> <TotalOffers>1</TotalOffers> <TotalOfferPages>1</TotalOfferPages> <MoreOffersUrl> http://www.amazon.co.jp/gp/offer-listing/B004TJE3JW%3FSubscriptionId%3DAKIAI6TUQ6RMY2JZ4YBA%26tag%3Dsstart-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3DB004TJE3JW </MoreOffersUrl>
ItemPage パラメータ 400→10への縮小
ItemSearch 等で使用する、ItemPage のパラメータの最大値が400から10に縮小しました。ItemPage 毎に10商品が参照できるので、最大4000件参照できた商品が100件になります。100件以上の商品を見せる場合は、MoreSearchResultsUrl という URL が付加されるので、通常はこちらを使うことになるでしょう。
一度で取得出来る情報が極端に少なくなったため、これからは BrowseNode・keywords を使い、より細かい条件で APAAPI から商品情報を集めないと元どおりの数を揃えるのはなかなか難しそうです。
仕様変更後に ItemPage に11以上の値を指定するとエラーが返ってきます
<Errors> <Error> <Code>AWS.ParameterOutOfRange</Code> <Message>ItemPage として指定した値は無効です。有効な値は、1から10までのものです。</Message> </Error> </Errors>
新仕様体験期間
2011年10月26日 に仕様変更と言ったのですが、実は事前に新仕様になる期間が設定されています。
2011年10月19日(水)午後3:00 – 午後7:00
上記の4時間の間は、新仕様での APAAPI の問い合わせ結果が返ってくるので、ご注意ください。
この例のように、Web API の仕様変更には地道付き合っていくしかありません。
常に情報収集を怠らず、仕様変更や API 自体が使用できなくなるかもという可能性を考えつつ、うまく活用していきましょう。