Ruby 对于与RESTAPI的交互,是否有一种比Net::HTTP更为用户友好的替代方案?

Ruby 对于与RESTAPI的交互,是否有一种比Net::HTTP更为用户友好的替代方案?,ruby,http,rest,Ruby,Http,Rest,HTTP对于标准用例来说可能相当麻烦 这就是我使用的:。是整本书中使用最多的一个 用法示例: response = open('https://wherever/foo', :method => :put, :http_basic_authentication => ['my-user', 'my-passwd'], :body => 'payload') puts respons

HTTP对于标准用例来说可能相当麻烦

这就是我使用的:。

是整本书中使用最多的一个

用法示例:

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

puts response.read

如果你只需要处理REST,那么这个图书馆真是太棒了

如果您使用的API不是完全RESTful的,或者即使它们是完全RESTful的,那么确实值得一看。它简化了RESTAPI以及非RESTfulWebAPI的使用。查看此代码(从上面的链接复制):


它还处于起步阶段,但看起来相当不错。

我是它的忠实粉丝,它在不妨碍实现的情况下发挥了足够的作用。它智能地处理异常,并支持开箱即用的日志记录和身份验证。

看看asplake(即my)在github上描述的项目/gem的路由和路径(我似乎无法从这里链接到它。Path to使用HTTParty,但它不像这个问题的其他答案那样使用硬编码URL,而是使用描述的路由提供的元数据。在positiveincline.com上有几篇文章描述了这些宝石,其中与您的问题最相关的是。

嗯,总是有活动eResource,如果您在Rails上:)

我对HTTParty的唯一问题是它返回一个散列,而不是解析XML并返回一个带有属性访问器的“代表性”对象数组。我自己构建了一个代表性对象数组并返回该数组,而不是从find_by_zip返回散列。
response = open('https://wherever/foo',
                :method => :put,
                :http_basic_authentication => ['my-user', 'my-passwd'],
                :body => 'payload')

puts response.read
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"}}}