Tesla.Middleware.XML (tesla_middleware_xml v2.0.0)

Encode requests and decode responses as XML.

This middleware can be configured to use different engines for the encoding and decoding of XML requests and responses.

Remember to add {:saxy, "~> 1.5"} (or another supported engine) to the dependencies of your project.

If you only need to encode the request body or decode the response body, you can use Tesla.Middleware.EncodeXml or Tesla.Middleware.DecodeXml directly instead.

Examples

defmodule MyClient do
  use Tesla

  plug Tesla.Middleware.XML # use default settings
  # or
  plug Tesla.Middleware.XML, engine: XmlJson, engine_opts: [convention: AwsApi]
end

Options

  • :decode - decoding function
  • :decode_content_types - list of additional decodable content-types
  • :encode - encoding function
  • :encode_content_type - content-type to be used in request header
  • :engine - encode/decode engine, eg. Saxy, XmlJson (defaults to Parker)
  • :engine_opts - optional engine opts

Summary

Functions

Decode response body as XML.

Encode request body as XML.

Functions

Link to this function

decode(env, opts)

@spec decode(
  Tesla.Env.t(),
  keyword()
) :: Tesla.Env.result()

Decode response body as XML.

It is also used by Tesla.Middleware.DecodeJson.

Link to this function

encode(env, opts)

@spec encode(
  Tesla.Env.t(),
  keyword()
) :: Tesla.Env.result()

Encode request body as XML.

It is also used by Tesla.Middleware.EncodeXML.