layout | title | permalink | hide | top_name | top_link | next_name | next_link |
---|---|---|---|---|---|---|---|
documentation |
Available Middleware |
/middleware/list |
true |
Middleware |
./ |
Writing Middleware |
./custom |
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 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.Multipart
converts aFaraday::Request#body
hash of key/value pairs into a multipart form request.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.Json Response
parses response body into a hash of key/value pairs.Retry
automatically retries requests that fail due to intermittent client or server errors (such as network hiccups).Instrumentation
allows to instrument requests using different tools.
Response middleware receives the response from the adapter and can modify its details before returning it.
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.