View Source Tesla.Middleware.JSON (tesla v1.8.0)
Encode requests and decode responses as JSON.
This middleware requires Jason (or other engine) as dependency.
Remember to add {:jason, ">= 1.0"}
to dependencies.
Also, you need to recompile Tesla after adding :jason
dependency:
mix deps.clean tesla
mix deps.compile tesla
If you only need to encode the request body or decode the response body,
you can use Tesla.Middleware.EncodeJson
or Tesla.Middleware.DecodeJson
directly instead.
Examples
defmodule MyClient do
use Tesla
plug Tesla.Middleware.JSON # use jason engine
# or
plug Tesla.Middleware.JSON, engine: JSX, engine_opts: [strict: [:comments]]
# or
plug Tesla.Middleware.JSON, engine: Poison, engine_opts: [keys: :atoms]
# or
plug Tesla.Middleware.JSON, decode: &JSX.decode/1, encode: &JSX.encode/1
end
Options
Summary
Functions
@spec decode( Tesla.Env.t(), keyword() ) :: Tesla.Env.result()
Decode response body as JSON.
It is used by Tesla.Middleware.DecodeJson
.
@spec encode( Tesla.Env.t(), keyword() ) :: Tesla.Env.result()
Encode request body as JSON.
It is used by Tesla.Middleware.EncodeJson
.