結果をページ単位で表示する

レスポンスで数千件もの商品を返すようなリクエストを作成することが可能です。これには、いくつかの理由で問題があります。それら商品の全ての商品属性を返すと、Product Advertising API のパフォーマンスに大きな悪影響を与えます。また、数千件ものレスポンスを Web ページに表示するのは現実的でありません。

このことから、Product Advertising API では、一度に大量の結果を返さないように設計されています。ただし、任意の結果ページを返すことは可能です。例えば、最初のリクエストで結果の最後のページを返すことができます。そのためには、結果ページを返すようにするいずれかのパラメータを使用して、出力対象のページを指定する必要があります。

結果のページを指定するには

http://ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService&
AWSAccessKeyId=[AWS アクセスキー ID]&
Operation=ItemSearch&
Keywords=Potter&
SearchIndex=Books&
ItemPage=4

次のレスポンス例では、結果の4ページ目が返されています。

<ItemSearchRequest>
  <ItemPage>4</ItemPage> 
  <Keywords>Potter</Keywords>
  <SearchIndex>Books</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalResults>9729</TotalResults> <TotalPages>973</TotalPages> 

この例は、検索条件に9729の商品が一致したことを示しています。また、これらの結果が973ページ(9729を10で割った値を切り上げたもの)に及ぶことも示しています。例えば、ItemPage に400より大きい値を指定して実行してみましょう。その場合、Product Advertising API は次のエラーを返します。

<Error>
  <Code>AWS.ParameterOutOfRange</Code>
  <Message>The value you specified for ItemPage is invalid. Valid values must be between 1 and 400.</Message>
</Error>

だとすると、973ページ目の結果はどうすれば取得できるのでしょうか?残念ながら、この結果は取得できません。対象を絞り込み、レスポンス内の商品が少なくなるようなリクエストを新たに送信することで、この件に対処してください。