[ECS4] Amazon E-Commerceサーバへのリクエスト作成。
Amazon E-Commerce Service 4.0が2004/08頃に始まったので、もう3年が過ぎていますね。ということで前VersionであるAWS3.0のサポートが終了される日も近づいてきました。一応終了予定日が2008/03/31となっていますので、2008/02くらいまでにはECS4への移行を終えていたいものです。ここではECS4の基本的な情報を備忘録として書き留めていきたいと思います。
AWS3からECS4になっても基本的なことはそんなに変わりません。ECSサーバへのデータリクエストにRESTやSOAPを使ってXMLをゲットするのやXSLTも利用できることに変わりはありません。ただXMLデータの構造とかツリー構造全部変わっています。しかし、その変わりにECS4はAWS3と比べると、データ取得の柔軟性が増したりして便利なこと数多くあります。その辺のことも徐々に書いていきたいと思います。
ECS RESTリクエストの作成
リクエスト方法にはRESTとSOAPを使えますがここではRESTを利用した方法を書きます。まず最初にECSサーバーへのリクエストURLは http://ecs.amazonaws.jp/onca/xml? 以下使用するパラメーター となります。以前は別のURLへのリクエストだったのですが、API Version 2007-02-22より現在のURLに変更になりました。

ECSサーバへのリクエストは大雑把に上の図のようになります。サーバアドレス + 固定パラメータに、キーワード・ASIN検索、カート操作などの操作を指定するOperationパラメータ。そしてそのOperationに対応する操作用のパラメータ。これは検索ジャンルやキーワード、取得データ、ページングなどの指定を行います。XSLTを使ってECSを利用する場合にはXSLT用のパラメータを指定します。
とりあえず最低限でのECS RESTリクエストでXMLデータを取得してみます。
http://ecs.amazonaws.jp/onca/xml ?Service=AWSECommerceService &AWSAccessKeyId= [Access Key ID] &AssociateTag= [Associate ID] &Operation=ItemSearch &SearchIndex=Books &Keywords=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0 &Version=2007-10-29
上の例では一番単純なリクエスト例です。和書カテゴリを「プログラミング」というキーワードで商品検索を行います。作成したリクエストはUTFエンコードをする必要があります。最低限のパラメータの指定をしただけですので返ってくるXMLデータは最低限のものです。
<?xml version="1.0" encoding="UTF-8"?>
<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-10-29">
<OperationRequest>
<HTTPHeaders><Header Name="UserAgent" Value=" [ブラウザのUser Agent情報] "></HTTPHeaders>
<RequestId>0MAPRE7RATQTNN9XJN20</RequestId>
<Arguments>
<Argument Name="SearchIndex" Value="Books"/>
<Argument Name="AssociateTag" Value=" [Associate ID] "/>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="Keywords" Value="プログラミング"/>
<Argument Name="Operation" Value="ItemSearch"/>
<Argument Name="AWSAccessKeyId" Value=" [AWS Access Key ID] "/>
<Argument Name="Version" Value="2007-10-29"/>
</Arguments>
<RequestProcessingTime>0.0775489807128906</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemSearchRequest>
<Keywords>プログラミング</Keywords>
<SearchIndex>Books</SearchIndex>
</ItemSearchRequest>
</Request>
<TotalResults>12753</TotalResults>
<TotalPages>1276</TotalPages>
<Item>
<ASIN>477413256X</ASIN>
<DetailPageURL> アフィリエイト付商品リンク </DetailPageURL>
<ItemAttributes>
<Creator Role="編集">WEB+DB PRESS編集部</Creator>
<Manufacturer>技術評論社</Manufacturer>
<ProductGroup>Book</ProductGroup>
<Title>WEB+DB PRESS Vol.41</Title>
</ItemAttributes>
</Item>
<Item>
~ 以下商品データの繰り返し ~
</Item>
</Items>
</ItemSearchResponse>
上のようなXMLデータが検索結果として返ってきます。パラメータで何も指定しなかったのでほぼ最低限の情報しか得られません。
今回はECS RESTリクエストの組み立てについて簡単にですが書いてみました。次回はOperationパラメータについてです。続きます。
コメント