こんにちは。
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