Rails 1.x客户端与RESTful服务器通信

时间:2010-08-12 20:16:19

标签: ruby-on-rails web-services rest

嘿所有,我有一个客户端正在将Rails 1.2.6站点与另一个以RESTful方式公开服务的站点集成。目前无法升级到Rails 2.x。有没有人建议除了直接Net :: HTTP调用之外的方法与REST服务进行通信?欢迎使用技术或宝石建议,但我见过的大多数宝石似乎都依赖于ActiveSupport 2.x,我认为这与Rails 1.x不兼容。

提前感谢您提供的任何输入。

2 个答案:

答案 0 :(得分:1)

试试HTTParty。它非常依赖于依赖关系,并且可以很容易地将JSON或XML资源的消耗添加到应用程序中。

答案 1 :(得分:0)

感谢Chris Heald的回复。我最终使用Net :: HTTP,因为它比我想象的更直接。 HTTParty似乎可以让这更容易,但为了这个问题的未来人的利益,这就是我做的。

# Assume @user_name and @password were previously declared to be the 
# appropriate basic auth values and that the connection is open as @connection
  def put(path, body, header={})
    request = Net::HTTP::Put.new(path, header.merge({'Accept' => 'application/xml,application/json', 'Content-type'=>'application/json'}))
    request.basic_auth(@user_name, @password)
    @connection.request(request, body).body
  end

  def post(path, body, header={})
    request = Net::HTTP::Post.new(path, header.merge({'Accept' => 'application/xml,application/json', 'Content-type'=>'application/json'}))
    request.basic_auth(@user_name, @password)
    @connection.request(request, body).body
  end 

  def get(path, header={})
    request = Net::HTTP::Get.new(path)
    request.basic_auth(@user_name, @password)
    @connection.request(request).body   
  end

然后我在这些方法的输出上调用了JSON :: parse(),得到了一个代表我可以使用的JSON的哈希。