Skip to content
Mislav Marohnić edited this page Jan 24, 2012 · 8 revisions

faraday_middleware documentation

This is a collection of middleware for the Faraday project.

Example use:

require 'faraday_middleware'

## in Faraday 0.8 or above:
connection = Faraday.new 'http://example.com/api' do |conn|
  conn.request :oauth2, 'TOKEN'
  conn.request :json

  conn.response :xml,  :content_type => /\bxml$/
  conn.response :json, :content_type => /\bjson$/

  conn.use :instrumentation
  conn.adapter Faraday.default_adapter
end

## with Faraday 0.7:
connection = Faraday.new 'http://example.com/api' do |builder|
  builder.use FaradayMiddleware::OAuth2, 'TOKEN'
  builder.use FaradayMiddleware::EncodeJson

  builder.use FaradayMiddleware::ParseXml,  :content_type => /\bxml$/
  builder.use FaradayMiddleware::ParseJson, :content_type => /\bjson$/

  builder.use FaradayMiddleware::Instrumentation
  builder.adapter Faraday.default_adapter
end

Important: same as with Rack middleware, the order of middleware on a Faraday stack is significant. General guidelines:

  1. put request middleware first, in order of importance;
  2. put response middleware second, in the reverse order of importance;
  3. ensure that the adapter is always last.

Request middleware:

  • FaradayMiddleware::EncodeJson
  • FaradayMiddleware::OAuth
  • FaradayMiddleware::OAuth2

Response middleware:

  • Parsing responses:
    • FaradayMiddleware::ParseJson
    • FaradayMiddleware::ParseXml
    • FaradayMiddleware::ParseYaml
    • FaradayMiddleware::ParseMarshal
  • FaradayMiddleware::Caching
  • FaradayMiddleware::FollowRedirects
  • FaradayMiddleware::Mashify
  • FaradayMiddleware::Rashify

Other middleware:

  • FaradayMiddleware::Instrumentation
  • FaradayMiddleware::RackCompatible

(Please note: This wiki has been closed, and turned into in-repo Markdown documents. You can find them in the repository's docs/ directory. This wiki does not take new edits.)

Clone this wiki locally