http_client v0.1.2 Client.Encoders behaviour

Provided Encoders

  • GETURLEncoded

    This uses FormData to prepare a url-encoded payload for GET requests, it does not set custom headers because HTTPoison and Hackney do this automatically.

  • JSON

    This uses Poison to prepare a binary payload for POST, PATCH, and PUT requests, it sets a custom Content-Type header to application/json.

  • Multipart

    This uses FormData to prepare a multipart payload for POST, PATCH, PUT requests. It does not set custom headers because HTTPoison and Hackney do this automatically.

  • NilEncoder

    This does not encode any data, it is only useful for documentation purposes when using HTTPoison’s delete/2 function, since DELETE requests do not carry payloads.

  • URLEncoded

    This uses FormData to prepare a url-encoded payload for POST, PATCH< and PUT requests. It does not set custom headers because HTTPoison and Hackney do this automatically.

Examples

defmodule MyCustomEncoder do
  @behaviour Client.Encoders

  def headers, do: %{"Content-Type" => "application/custom-data"}
  def encode(payload), do: MyEncoder.encode(payload)
  def encode!(payload), do: MyEncoder.encode!(payload)
end

Summary

Types

encoded :: {:ok, any} | {:error, any}
payload :: map | list | struct

Callbacks

encode(payload)

Specs

encode(payload) :: encoded
encode!(payload)

Specs

encode!(payload) :: any
headers()

Specs

headers :: map