Class | Restr |
In: |
lib/restr.rb
|
Parent: | Object |
A very simple REST client, best explained by example:
# Retrieve a Kitten and print its name and colour kitten = Restr.get('http://example.com/kittens/1.xml') puts kitten['name'] puts kitten['colour'] # Create a Kitten kitten = Restr.post('http://example.com/kittens.xml', :name => 'batman', :colour => 'black') # Update a Kitten kitten = Restr.put('http://example.com/kittens/1.xml', :age => '6 months') # Delete a Kitten :( kitten = Restr.delete('http://example.com/kittens/1.xml') # Retrieve a list of Kittens kittens = Restr.get('http://example.com/kittens.xml')
When the response to a Restr request has content type ‘text/xml’, the response body will be parsed from XML into a nested Hash (using XmlSimple — see xml-simple.rubyforge.org/). Otherwise the response is returned untouched, as a String.
If the remote REST resource requires authentication (Restr only supports HTTP Basic authentication, for now):
Restr.get('http://example.com/kittens/1.xml, {}, {:username => 'foo', :password => 'bar'})
A standard Ruby Logger can be attached to the Restr client like so:
logger = Logger.new('restr.log') logger.level = Logger::DEBUG Restr.logger = logger
Restr will now log its activity to the given Logger. The default_logger can be overridden by supplying a :logger option to a client call:
kitten_logger = Logger.new('kitten.log'} Restr.get('http://example.com/kittens/1.xml, {}, {:logger => kitten_logger)