Amazon E-Commerce Service(ECS) Ruby編
Amazonの「ECS」にアクセスするコードをRubyで書いてみました。
ECSにアクセスするために、RESTプロトコルを利用しました。RESTを利用する方法の詳細については、「Amazon E-Commerce Service(ECS) 第1回」を参照してください。
早速ですが、コードを示します。
-------------------------------------------- ここから
require 'net/http'
require 'cgi'
require 'rexml/document'
# ECSを利用するために必要な情報を設定します
AWS_BASE_URL = "http://webservices.amazon.co.jp/onca/xml?"
AWS_ACCESS_KEY_ID = "アクセスキーを指定します"
SERVICE_NAME = "AWSECommerceService"
SERVICE_VERSION = "2006-11-14"
ASSOCIATE_TAG = "アソシエイトIDを指定します(省略可)"
# 商品を検索するために必要なキーワードを指定します
responseGroup = "ItemAttributes"
operation = "ItemSearch"
keywords = "Java"
searchIndex ="Books"
parameters = {
:Service => SERVICE_NAME,
:Version => SERVICE_VERSION,
:AWSAccessKeyId => AWS_ACCESS_KEY_ID,
:AssociateTag => ASSOCIATE_TAG,
:Operation => operation,
:ResponseGroup => responseGroup,
:Keywords => keywords,
:SearchIndex => searchIndex
}
# RESTで必要なパラメータをURL形式に変更します
paramString = (
parameters.collect { |key,value| "#{key}=#{CGI::escape(value)}" }
).join('&')
# RESTでアクセスするためのURLを作成します
url = URI.parse( AWS_BASE_URL + paramString )
# ECSからXMLのデータを取得します
xml = REXML::Document.new( Net::HTTP.get( url ) )
# 必要なデータまでのXPathを指定します
# (今回は書籍のタイトルの抽出しています)
xpath = "ItemSearchResponse/Items/Item/ItemAttributes/Title"
# 取得したXMLから、必要な情報を取り出して、出力します
xml.elements.each( xpath ) { |element|
puts element.text
}
-------------------------------------------- ここまで
つづいて、出力例を示します。
やさしいJava 第3版
Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
ソースコードリーディングから学ぶ Javaの設計と実装
Apache Maven 2.0入門 Java・オープンソース・ビルドツール
増補改訂版Java言語で学ぶデザインパターン入門
Java World (ジャバ・ワールド) 2007年 02月号 [雑誌]
Spring2.0入門 Java・オープンソース・Web開発自由自在
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
Eclipse 3.2 完全攻略
Effective Java プログラミング言語ガイド
以上です。
Rubyを利用したためでしょうか、非常にお手軽感な感じがします。
ちょっとしたスクリプトを書いて「インターネットというデータベースから、データを抽出している」ような感じです。
(参考)
「Ruby で Amazon Web Service(AWS) メモ」
「Getting Started Sample for Amazon Mechanical Turk in Ruby (REST) 」
(関連)
「REXMLについて」