文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

各種WEB APIのレビュー:制限について

引き続き、以下のAPIについて、解る範囲で制限をまとめてみます。
(主にショッピング系APIについてのお話となります)

楽天WEB SERVICE

  • リクエスト数:1秒間に1回まで。
  • 最大ページ数:100ページ。
  • 最大取得件数:30件。(一度に取得できる商品件数)。
  • 最大検索結果数:100ページ × 30件 = 3000件。
  • ソート:特に制限無し。
  • 価格等の検索:特に制限無し。
  • 親ジャンルの構造:子から見て親が複数になる場合が有る。
  • Cookie保存期間:30日。上書きされるので、複数のアフィリエイトURLを参照しても後勝ちになります。

yahooデベロッパーネットワーク

  • リクエスト数:1秒間に1回まで。
  • 最大ページ数:100ページ。
  • 最大取得件数:50件。(一度に取得できる商品件数)。
  • 最大検索結果数:nページ × n件 = 1000件。(トータル1000件までです)
  • ソート:特に制限無し。
  • 価格等の検索:特に制限無し。
  • 親ジャンルの構造:子から見て親は常に1件。
  • Cookie保存期間:1日??上書きされるので、複数のアフィリエイトURLを参照しても後勝ちになります。

Amazon Product Advertising API

  • リクエスト数:1秒間に1回まで。
  • 最大ページ数:4ページ。(SearchIndex毎???に違うので調べきれてません。)
  • 最大取得件数:10件。(一度に取得できる商品件数)。
  • 最大検索結果数:4ページ × 10件 = 40件。
  • ソート:SearchIndex(ファッション等の種別)を指定しない場合、なんと指定できません。
  • 価格等の検索:SearchIndex(ファッション等の種別)を指定しない場合、なんと指定できません。
  • 親ジャンルの構造:子から見て親が複数になる場合が有る。トップジャンルから子ジャンルに潜り、トップジャンルに戻ろうとして戻れない。
  • Cookie保存期間:1日。上書きされるので、複数のアフィリエイトURLを参照しても後勝ちになります。

やはり楽天が良い感じ。amazonですが、この制限を見ると
サイトを作成する時は必ずテーマ(SearchIndex)を指定しましょう
と暗に言っているのだと思います。そう考えると合点がいく。
テーマが決まっていればSearchIndexも決め打ちにできるし、返り値(ResponseGroup)も決め打ちにできます。
amazonの圧倒的に多いレスポンス項目が存分に使えるのです。
しかしtree-shopのようにSearchIndexが決められない(決めにくい)場合、こういった制限を受ける訳です。
SearchIndex未指定(Allが指定される)時はほんと、価格の絞り込みもできず、ソートもできず、Keywordしか指定できません。。。

あと、注意点ですが、最大取得件数は余り増やさない方がいいです。max20件くらいがよいかと思います。
私はレスポンスを全てXMLにしていますが、パースしてDTOにマッピング(JDomで手動マッピング)するのにかなり時間がかかります。
結構レスポンスの処理に時間がかかるので、(Javaなら)EHCache等でキャッシュした方がいいです。
amazonのレスポンスは多すぎる場合が有るので、返り値種別(ResponseGroup)をMiddle等を指定せず、
ページのテーマ毎に個別に設定した方がいいかと思います。