LoginSignup
75
75

More than 3 years have passed since last update.

RubyからHTTP通信させたいときはFaradayを使おう

Last updated at Posted at 2015-01-28

こんにちは。

RailsつかってるとAPI叩きたいことってしょっちゅうあるとおもうんですが、以前はnet/httpを愚直やってました。コードが煩雑になってしまいました。

最近はFaraday一択です。

準備

インストール。

Gemfileに

gem 'faraday'

って書くか

$ gem install faraday

使用例

まずは宣言。

## HTTPリクエスト設定(Faraday)
uri = "http://[適当なURI]/"
req = Faraday::Connection.new(url: uri) do |conn|
  conn.adapter Faraday.default_adapter
  conn.request :url_encoded 
  conn.response :logger # ログを出す
  conn.headers['Content-Type'] = 'application/json' # ヘッダー指定
end

こんな感じで指定します。

もしBASIC認証とかしたいときは以下を追加すればいいです。

conn.basic_auth('ユーザ名', 'パスワード')

GETアクセス

GETは以下。

## 普通にアクセスさせる場合
res = conn.get("/hoge/test")

パラメータ付ける場合

conn.get "/hoge/test?user_id=1"

/hoge/testは適当に読み替えてください。

パラメータつけたいときはそのまま後ろにそのまま&や?でつけていけばいいようです。

POSTアクセス

次はPOST

res = conn.post "/hoge/test",:hash => value

まあこんな感じだそうで。メソッドをpost,getで変えられるの便利ですね。net/http直書きで苦労してたときが懐かしいですね。

値確認

あとは戻り値を確認します。僕結構pp好きなのでppします。

pp res.body
75
75
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
75