2008-09-19 9 views

Respuesta

5

rest-open-uri es el que se utiliza en gran medida en el libro RESTful Web Services.

gem install rest-open-uri 

Ejemplo de uso:

response = open('https://wherever/foo', 
       :method => :put, 
       :http_basic_authentication => ['my-user', 'my-passwd'], 
       :body => 'payload') 

puts response.read 
16

Si sólo tiene que lidiar con el descanso, la biblioteca rest-client es fantástico.

Si las API que está utilizando no son completamente RESTANTES, o incluso si lo son, HTTParty realmente vale la pena echarle un vistazo. Simplifica el uso de API REST, así como de API web no RESTful. Echa un vistazo a este código (copiado desde el enlace de arriba):

require 'rubygems' 
require 'httparty' 

class Representative 
    include HTTParty 
    format :xml 

    def self.find_by_zip(zip) 
    get('http://whoismyrepresentative.com/whoismyrep.php', :query => {:zip => zip}) 
    end 
end 

puts Representative.find_by_zip(46544).inspect 
# {"result"=>{"n"=>"1", "rep"=>{"name"=>"Joe Donnelly", "district"=>"2", "office"=>"1218 Longworth", "phone"=>"(202) 225-3915", "link"=>"http://donnelly.house.gov/", "state"=>"IN"}}} 
+0

Mi único problema con HTTParty es que devuelve un hash en lugar de analizar el XML y devolver una matriz de 'Re objetos presentables con acceso a atributos. En lugar de devolver el hash de find_by_zip, construí una matriz de objetos representativos y los devolví. –

3

Soy un gran admirador de rest-client, que hace lo suficiente para ser útil sin entorpecer su implementación. Maneja las excepciones de forma inteligente y admite el inicio de sesión y la autenticación de forma predeterminada.

0

Eche un vistazo a las rutas _ y las rutas a proyectos/gems de asplake (es decir, a mi) en github (que parece que no puedo enlazar aquí. Path-to usa HTTParty, pero no está codificado URLs como algunas de las otras respuestas a esta pregunta, utiliza metadatos proporcionada por descritas _ rutas. hay varios artículos que describen estas joyas en positiveincline.com, de los cuales los más relevantes a su pregunta es Nested path-to/described_routes and HTTParty.

0

Bueno, hay siempre ActiveResource, siempre que esté en Rails :)

+0

No más ... –

Cuestiones relacionadas