Amazon E-Commerce Serviceへの道【REST通信編1】

REST通信の最小単位【本の検索】
http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=0JKHJ2KJND5AA3STS382&Operation=ItemSearch&SearchIndex=Books&Keywords=%e3%83%a6%e3%83%93%e3%82%ad%e3%82%bf%e3%82%b9

分割すると

http://webservices.amazon.co.jp/onca/xml?
Service=AWSECommerceService
&
AWSAccessKeyId=0JKHJ2KJND5AA3STS382
&
Operation=ItemSearch
&
SearchIndex=Books
&
Keywords=%e3%83%a6%e3%83%93%e3%82%ad%e3%82%bf%e3%82%b9


【解説】

まず、
http://webservices.amazon.co.jp/onca/xml?
WebサービスのURLを指定(これだけでは動きません)


ここから各パラメータに値を入れていく。


Service ・・・ ECSのWebサービスであることを示す。(Amazonには他にもWebサービスがあるので・・・)


AWSAccessKeyID・・・この部分で、Webサービスの使用者ID(subscriptionID)を設定する。


Operation・・・ここで、本の検索なのか、電気製品の検索なのか、というのを指定する


Keywords・・・ここに商品の検索キーワードを入力する



【keywords】

 ちなみに、今上のサンプルで指定している文字列は、「ユビキタス」という文字を示している。何故、ああいう文字化けチックになるかと言うと、アルファベット文字以外を2バイト文字列として扱っているかららしい。


 要するに、あれだよ。
AmazonWebサービスがこれじゃないと理解できないってことですよ。
keywords=ユビキタス で指定するとエラーを吐く。


 ユビキタス→%e3%83%a6%e3%83%93%e3%82%ad%e3%82%bf%e3%82%b9
と変換してアドレスを指定してやらなければならない。
 これをURLエンコードと言う。
Amazonの場合、UTF-8で指定しないと駄目っぽい。

【サイトを作るにあたって】

 これをいちいちクリックさせているんでは、しょうがない。


検索キーワード入力→URL生成→生成したURLに飛ばす


 ような遷移をPHPなり、サーブレットなり、javaScriptなりで実現する必要がある。
更に、生成されたURLはこのままだとただのXMLなので、これを解析する必要がありますよ、と。

【他のサービス】

 他のサービスも同じ感じ
http://【ベースのURL】&○○=××&・・・
を繰り返し、2バイト文字はURLエンコードしている。

【遊んでみよう】

URLエンコードした文字列を吐くサイトがある。
http://www.tagindex.com/tool/url.html


1.検索したい文字列を入力
2.文字エンコードUTF-8に指定
3.エンコード
4.keyword=XX XXの部分に貼り付け
5.検索結果のXMLが見られる。


やってみてください。
で、これを基準に他のWebサービスについてもやってみましょう。