2006-09-26
■ 楽天API? RakuAPI?
楽天市場非公式ウェブサービスRaku API(http://rakuapi.ddo.jp/)
flickr.rbをもとにしています.
rakuapi.rb
require 'cgi'
require 'net/http'
require 'rubygems'
require 'xmlsimple'
class RakuAPI
def initialize(affiliate_code=nil)
@affiliate_code = affiliate_code
@host = 'http://rakuapi.ddo.jp'
@api = '/api'
end
def search(query, *params)
response = XmlSimple.xml_in(http_get(request_url(query, params)), { 'ForceArray' => false, 'KeepRoot' => true})
response['ResultSet']['Result'].collect { |product| Product.new(product) } if response['ResultSet']['Result']
end
def request_url(query, *params)
url = "#{@host}#{@api}/?query=#{query}"
params[0][0].each_key do |key| url += "&#{key}=" + CGI::escape(params[0][0][key]) end if params[0][0]
url += "&affiliate_code=#{@affiliate_code}" if @affiliate_code
url
end
def http_get(url)
Net::HTTP.get_response(URI.parse(url)).body.to_s
end
class Product
attr_reader :title, :price, :tax, :url, :thumbnailUrl, :shopName, :shopUrl
def initialize(product)
@title = product['Title']
@price = product['Price']
@tax = product['Tax']
@url = product['Url']
@thumbnail_url = product['ThumbnailUrl']
@shop_name = product['ShopName']
@shop_url = product['ShopUrl']
end
end # end of Product class
end # end of RakuAPI class
で↓んな感じでたたけます
サンプル
#!/usr/bin/ruby
require 'rakuapi'
#api = RakuAPI.new('affiliate_code')
api = RakuAPI.new
items = api.search('MackBook')
items.collect {|item| p item.price} if items
items = api.search('MacBook', {:row => '5'})
items.collect {|item| p item.price} if items
トラックバック - http://d.hatena.ne.jp/kajidai/20060926/1159299523
リンク元
- 392 http://rakuapi.ddo.jp/
- 22 http://b.hatena.ne.jp/entry/http://rakuapi.ddo.jp/
- 22 http://rakutenwebservice.blog71.fc2.com/blog-entry-26.html
- 18 http://d.hatena.ne.jp/keyword/MacBook
- 14 http://d.hatena.ne.jp/keyworddiary/Ruby
- 13 http://www.google.co.jp/search?q=楽天 API&hl=ja
- 13 http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-24,GGGL:ja&q=emacs+制御文字
- 11 http://b.hatena.ne.jp/entry/2869107
- 11 http://rakuapi.ddo.jp
- 9 http://b.hatena.ne.jp/entry/2869107/kajidai - API? RakuAPI?
