tesla v1.0.0-beta.1 Tesla.Middleware.JSON View Source

Encode requests and decode responses as JSON.

This middleware requires jason (or other engine) as dependency.

Remember to add {:jason, ">= 1.0"} to dependencies (and :jason to applications in mix.exs) Also, you need to recompile tesla after adding :jason dependency:

mix deps.clean tesla
mix deps.compile tesla

Example usage

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

  • :decode - decoding function
  • :encode - encoding function
  • :engine - encode/decode engine, e.g Jason, Poison or JSX (defaults to Jason)
  • :engine_opts - optional engine options
  • :decode_content_types - list of additional decodable content-types

Link to this section Summary

Functions

Callback implementation for Tesla.Middleware.call/3

Decode response body as JSON. Used by Tesla.Middleware.DecodeJson

Encode request body as JSON. Used by Tesla.Middleware.EncodeJson

Link to this section Functions

Callback implementation for Tesla.Middleware.call/3.

Decode response body as JSON. Used by Tesla.Middleware.DecodeJson

Encode request body as JSON. Used by Tesla.Middleware.EncodeJson