🕺
RubyのhttpリクエストにはHTTPartyよりhttp.rbが良いかもしれない
参考リンクから。
HTTPartyは非常に使いやすいため、人気のあるrubyのHTTPクライアントgemですが、動作が遅く、多くのリソースを使います。上記のGitLabのイシューでHTTPartyをhttp.rbに置き換えるべきだという議論がされています。
この表はHttp.rb is Great
からの拝借です。10MBのデータをダウンロード及びアップロードしたときのメモリ使用量を計測したものです。
HTTPartyは非常にメモリ使用量が大きく、その一方でhttp.rbのメモリ使用量が小さいです。
同様の結果が本記事冒頭に挙げましたGitLabのissueでも報告されています。
http.rbはシンプルながら非常に扱いやすいインターフェースを持っており、HTTPartyから乗り換えても不便するような点はほとんどありません。ドキュメントも充実しており学習コストも低いです。
HTTP.rbでGETリクエスト
response = HTTP.get('https://www.google.com')
>> response.to_s
=> "<html><head><meta http-equiv=\"content-type\" content=..."
>> response.code
=> 200
AUTHリクエストを送るのも直感的です。
HTTP.basic_auth(:user => "user", :pass => "pass")
.get("https://example.com")
理由なくHTTPartyを使っているのであればhttp.rbの導入を検討してみてはいかがでしょう。
Discussion