Amazon E-Commerce Serviceへの道【REST通信編1】
分割すると
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バイト文字列として扱っているかららしい。
要するに、あれだよ。
AmazonのWebサービスがこれじゃないと理解できないってことですよ。
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サービスについてもやってみましょう。