В чем разница между Net: Http и сторонней библиотекой для выполнения вызовов API в Rails / Ruby? - PullRequest
2 голосов
/ 08 июня 2011

я сталкивался с этим: https://github.com/archiloque/rest-client ... и это кажется довольно простым и понятным. Но работа со сторонними API-интерфейсами является для меня новым, поэтому я не уверен, что важно в библиотеке и, что важнее всего, что проще всего использовать.

Предоставляет ли rest-client какое-либо преимущество перед стандартным Net :: Http ?

Я также нашел https://github.com/jnunemaker/httparty,, хотя, похоже, он не так хорошо документирован, как rest-client или даже этот: https://github.com/dbalatero/typhoeus. Они лучше, чем включенный стандарт?

Есть мысли, предложения?

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

Вам может пригодиться эта короткая статья Адама Виггинса, первоначального автора RestClient: http://adam.heroku.com/past/2008/8/8/ruby_libs_for_making_web/

Лично я использую httparty в своем проекте - это был выбор предыдущего разработчика, но он работает для меня довольнохорошо.

3 голосов
/ 10 июня 2011

Net :: HTTP предназначен для низкоуровневой библиотеки для доступа к сетевым ресурсам.Сторонние API-интерфейсы компенсируют некоторые трудности, которые в противном случае вам пришлось бы решать самостоятельно.Чтобы назвать несколько из них:

  • Обработка кодов перенаправления
  • Реализация загрузки нескольких файлов
  • Хранение файлов cookie между запросами
  • Обработка исключений HTTP
  • Разбор ответов (HTML, JSON и т. Д.)
  • Управление аутентификацией / SSL на защищенных сайтах

В целом, авторы этих библиотек уделили особое внимание созданию своего APIпрост в использовании по сравнению с Net :: HTTP.

Кроме того, я обнаружил, что Mechanize является более полным решением для моих нужд, чем rest-client.Например, с rest-client вам все равно придется реализовать сохранение файлов cookie между запросами и обработку перенаправлений на запросы POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...