Net:Http和第三方库在Rails / Ruby中进行API调用有什么区别?

时间:2011-06-08 13:36:39

标签: ruby ruby-on-rails-3 api rubygems

我遇到了这个: https://github.com/archiloque/rest-client ......而且看起来相当简单直接。但是,使用第三方API对我来说是新的,所以我不确定库中的重要性,最重要的是,它最容易使用。

rest-client是否优于标准Net::Http

我也找到了https://github.com/jnunemaker/httparty,虽然它似乎没有像rest-client那样记录得很好,甚至还有这个:https://github.com/dbalatero/typhoeus。它们比包含的标准更好吗?

有什么想法,建议吗?

2 个答案:

答案 0 :(得分:4)

你可能会发现RestClient的最初作者Adam Wiggins这篇简短的文章: http://adam.heroku.com/past/2008/8/8/ruby_libs_for_making_web/

我个人在我的项目中使用httparty - 这是以前开发人员的选择,但它对我很有用。

答案 1 :(得分:3)

Net :: HTTP意味着是一个用于访问网络资源的低级库。第三方API弥补了您自己必须处理的一些困难。仅举几例:

  • 处理重定向代码
  • 实施多部分文件上传
  • 在请求之间存储Cookie
  • HTTP异常处理
  • 解析响应(HTML,JSON等)
  • 在安全网站上管理身份验证/ SSL

一般来说,与Net :: HTTP相比,这些库的作者特别注意使其API易于使用。

此外,我发现Mechanize是一个比rest-client更完整的解决方案。例如,使用rest-client,您仍然需要在请求之间实现存储cookie并处理POST请求上的重定向。