Closed6
ruby 学習メモ: Faraday を使ってみる

ruby を勉強中。
下記のようなコードに出会った。
def fetch_body(url)
uri = URI.parse(url)
response = Net::HTTP.get_response(uri)
uri = URI.parse(response['location'])
response = Net::HTTP.get_response(uri)
response.body
end
ruby は全然わからなく初心者レベルだが、
それでもこのコードには改善点があり、もっと上手く書けそうと思ったのでトライ。

HTTPリクエストを2回しているのは不思議。
リダイレクトする前提で書いていたっぽい。
uri = URI.parse(response['location'])
response = Net::HTTP.get_response(uri)

ChatGPT に Faraday というライブラリを教えてもらった。
HTTPクライアント。
PHP で言う Guzzle みたいなものだと認識。

Gemfile に追加
gem "faraday"
gem "faraday_middleware"
で、取り込み
bundle install

Faraday のコードの例は Quick Start にたくさん書いてあった。

さっきのコードをリファクタリング。
def fetch_body(url)
conn = Faraday.new do |f|
f.response :follow_redirects
end
response = conn.get(url)
response.body
end
動いた。終わり。
ステータスコードのチェックをした方がいいが、勉強がてら書いているだけなのでこれでいい。
このスクラップは10日前にクローズされました