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 teslaIf 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
endOptions
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.