Клиент Rails 1.x общается с сервером RESTful - PullRequest
0 голосов
/ 13 августа 2010

Привет всем, у меня есть клиент, который интегрирует сайт Rails 1.2.6 с другим сайтом, который предоставляет сервисы RESTful.Обновление до Rails 2.x в настоящее время недоступно.У кого-нибудь есть рекомендации по методам, отличным от прямых вызовов Net :: HTTP для связи со службой REST?Приветствуются методы или рекомендации Gem, но большинство драгоценных камней, которые я видел, похоже, зависят от ActiveSupport 2.x, который, как я понимаю, несовместим с Rails 1.x.

Заранее спасибо за любыеввод, который вы можете предоставить.

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Попробуйте HTTParty . Он очень легок в отношении зависимостей и позволяет без труда добавлять в приложение потребление ресурсов JSON или XML.

0 голосов
/ 31 августа 2010

Спасибо Крису Хилду за ваш ответ. В итоге я использовал 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, который я мог использовать по своему усмотрению.

...