Included middleware

Faraday ships with some useful middleware that you can use to customize your request/response lifecycle. Middleware are separated into two macro-categories: Request Middleware and Response Middleware. The former usually deal with the request, encoding the parameters or setting headers. The latter instead activate after the request is completed and a response has been received, like parsing the response body, logging useful info or checking the response status.

Request Middleware

Request middleware can modify Request details before the Adapter runs. Most middleware set Header values or transform the request body based on the content type.

  • {Authorization} allows you to automatically add an Authorization header to your requests.

  • {UrlEncoded} converts a Faraday::Request#body hash of key/value pairs into a url-encoded request body.

  • {Json Request} converts a Faraday::Request#body hash of key/value pairs into a JSON request body.

  • {Instrumentation} allows to instrument requests using different tools.

Response Middleware

Response middleware receives the response from the adapter and can modify its details before returning it.

  • {Json Response} parses response body into a hash of key/value pairs.

  • {Logger} logs both the request and the response body and headers.

  • {RaiseError} checks the response HTTP code and raises an exception if it is a 4xx or 5xx code.