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.
BasicAuthentication
sets theAuthorization
header to theuser:password
base64 representation.TokenAuthentication
sets theAuthorization
header to the specified token.UrlEncoded
converts aFaraday::Request#body
hash of key/value pairs into a url-encoded request body.Json Request
converts aFaraday::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.