No commit activity in last 3 years
No release in over 3 years
Simple Interface To Web Services APIs (Ruby)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

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 <info@milk1000.cc>

Yusuke Wada