Существует ли более удобная альтернатива Net:: HTTP для взаимодействия с REST API?
Net:: HTTP может быть довольно громоздким для стандартного варианта использования!
Ответы
Ответ 1
Если вам нужно иметь дело с REST, библиотека rest-client фантастична.
Если API-интерфейсы, которые вы используете, не полностью RESTful - или даже если они есть - HTTParty действительно стоит проверить, Он упрощает использование API-интерфейсов REST, а также веб-API, не относящихся к RESTful. Проверьте этот код (скопированный из приведенной выше ссылки):
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"}}}
Ответ 2
rest-open-uri - это тот, который широко используется во всех RESTful Веб-сервисы.
gem install rest-open-uri
Пример использования:
response = open('https://wherever/foo',
:method => :put,
:http_basic_authentication => ['my-user', 'my-passwd'],
:body => 'payload')
puts response.read
Ответ 3
Я большой поклонник rest-client, который достаточно для того, чтобы быть полезным, не мешая вашей реализации. Он обрабатывает исключения разумно и поддерживает ведение журнала и auth, из коробки.
Ответ 4
HyperactiveResource находится в зачаточном состоянии, но выглядит довольно неплохо.
Ответ 5
Это то, что я использую: http://rubyforge.org/projects/restful-rails/.
Ответ 6
Взгляните на asplake (т.е. my) describe_routes и path-to projects/gems на github (с которого я не могу ссылаться здесь. Path-to использует HTTParty, а не жестко закодированные URL-адреса, например, некоторые других ответов на этот вопрос, он использует метаданные, предоставленные описанными_routes. Существует несколько статей, описывающих эти драгоценные камни на сайте positiveincline.com, наиболее актуальными для вашего вопроса являются Вложенные path-to/describe_routes и HTTParty.
Ответ 7
Ну, всегда есть ActiveResource, если вы на Rails:)