JSONを返すAPIを作っていて、APIを実際に叩いてみるのに何かいいものはないかと思い、FaradayというHTTPクライアントライブラリが良さそうだったので使ってみた。使用するミドルウェアの設定やリクエスト、レスポンスを宣言的に記述することができて、すっきりと書ける感じ。また、FaradayMiddleware::ParseXmlやFaradayMiddleware::ParseJsonを使えば結果のXMLやJSONをHashに変換することができるので、結果を使った処理をする前に自前で変換書かなくてもいいのが良い。OAuthにも対応していたり、他にも色々と便利そう。
apirunner.rb
require "rubygems"
require "faraday"
require "faraday_middleware"
require "pp"
conn = Faraday::Connection.new(:url => 'http://example.com') do |builder|
builder.request :url_encoded
builder.response :logger
builder.response :xml, :content_type => /\bxml$/
builder.response :json, :content_type => /\bjson/
builder.adapter Faraday.default_adapter
end
#GET http://example.com/foo/bar?limit=100
response = conn.get do |req|
req.url '/foo/bar'
req.params['limit'] = 100
end
puts response.body["hoge"][0]["hage"]