找了一下 ruby http 客户端,有 https://github.com/lostisland/faraday https://github.com/jnunemaker/httparty
在 2019 年,大家都用什么 ruby http 客户端?
如果是自己开发 gem 包,我会直接使用标准库的包 net/http
,目的是减小包的依赖,尽可能轻量。如果是开发的项目,如果是依赖链里边已经有可用的 http 包,我就会直接使用那个包。所以,faraday、httparty、rest-client 这些我都用过,因为维护过的项目都用过。
如果是简单的需求,比如对外部服务请求方式单一,我觉得 net/http
够了,否则,我觉得哪个轻量用哪个,或者是哪个的设计简单用哪个,这会决定后面你排查问题的难易程度。一般来说,库本身性能是我最后考虑的因素,毕竟对于一个外部请求来说,如果不是很高频,代码本身的性能根本不是什么明显的影响因素。
我喜欢它的 API 设计,以及 chainable 的特性
这里有一篇博客,介绍了 http.rb 的优点:https://twin.github.io/httprb-is-great/