WebService::Simple
Simple Interface To Web Services APIs (Ruby)
Original perl version was created by Yusuke Wada.
Usage
require 'rubygems'
require 'web_service_simple'
# Simple use case
technorati = WebService::Simple.new(
:base_url => 'http://api.technorati.com/',
:param => { :key => 'your_api_key', }
)
# send GET request to
# http://api.technorati.com/?language=ja&key=your_api_key&query=value
technorati.get :language => 'ja', :query => 'value'
# send GET request to
# http://api.technorati.com/extra/path?language=ja&key=your_api_key&query=value
technorati.get 'extra/path', :language => 'ja', :query => 'value'
Methods
- new(arg)
technorati = WebService::Simple.new(
:base_url => 'http://api.technorati.com/',
:param => { :key => 'your_api_key', },
# :debug => 1
)
Create and return a new WebService::Simple object. “new” Method requires a base_url of Web Service API. If debug is set, dump a request URL in get or post method.
- get([extra_path,] arg)
response =
technorati.get(:language => 'ja', :query => 'value')
Send GET request, and you can get the WebService::Simple::Response object. If you want to add a path to base URL, use an option parameter.
technorati = WebService::Simple.new(
:base_url => 'http://api.technorati.com/',
:param => { :api_key => 'your_api_key', :language => 'ja' }
)
response = technorati.get('search', :limit => 50)
- post([extra_path,] arg)
Send POST request.
- base_url
- base_url=
- basic_params
- basic_params=
- logger
- logger=
- debug
- debug=
- response_parser
- response_parser=
Subclassing
For better encapsulation, you can create subclass of WebService::Simple to customize the behavior
class WebService::Simple::Technorati < WebService::Simple
@@config = {
:base_url => 'http://api.technorati.jp',
:response_parser => { :module => 'XML::Technorati' }
}
def key_info
get '/keyinfo'
end
def search(keyword)
get '/search', :query => keyword
end
end
Parsers
Web services return their results in various different formats. Or perhaps you require more sophisticated results parsing than what WebService::Simple provides.
WebService::Simple by default uses WebService::Simple::Parser::XML::Nokogiri (based on Nokogiri gem), but you can easily override that by providing a parser object to the constructor:
service = WebService::Simple.new(
:response_parsrer => AVeryComplexParser.new,
...
)
response = service.get( ... )
thing = response.parse_response
This allows great flexibility in handling different webservices
Install
sudo gem install milk1000cc-web_service_simple --source=http://gems.github.com
Author
milk1000cc <[email protected]>
Yusuke Wada