| 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)