2008-09-19 2 views

Répondre

5

rest-open-uri est celui qui est largement utilisé dans le livre RESTful Web Services.

gem install rest-open-uri 

Exemple d'utilisation:

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

puts response.read 
16

Si vous avez seulement à traiter REST, la bibliothèque rest-client est fantastique.

Si les API que vous utilisez ne sont pas complètement RESTful - ou même si elles sont - HTTParty vaut vraiment le coup d'œil. Il simplifie l'utilisation des API REST, ainsi que des API Web non-RESTful. Consultez ce code (copié à partir du lien ci-dessus):

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

Mon seul problème avec HTTParty est qu'il renvoie un hachage au lieu d'analyser le XML et de retourner un tableau de 'Re Présenter des objets avec des accesseurs d'attribut. Au lieu de renvoyer le hachage à partir de find_by_zip, j'ai construit moi-même un tableau d'objets représentatifs et je l'ai retourné. –

3

Je suis un grand fan de rest-client, qui fait juste assez pour être utile sans gêner votre implémentation. Il gère intelligemment les exceptions et prend en charge la journalisation et l'authentification dès la sortie de la boîte.

0

Jetez un coup d'œil à asplake (c'est-à-dire) décrit _ routes et chemin d'accès aux projets/gemmes sur github (que je n'arrive pas à lier à partir d'ici) Path-to utilise HTTParty, mais plutôt que codé en dur URL comme certains des autres réponses à cette question, il utilise les métadonnées fournies par décrites _ routes. il y a plusieurs articles qui décrivent ces pierres précieuses à positiveincline.com, dont les plus pertinents à votre question est Nested path-to/described_routes and HTTParty.

0

Eh bien, il y a toujours ActiveResource, à condition que vous soyez sur Rails :)

+0

Plus maintenant ... –

Questions connexes