Tesla.Env (tesla v1.5.0) View Source

This module defines a Tesla.Env.t/0 struct that stores all data related to request/response.

Fields

  • :method - method of request. Example: :get
  • :url - request url. Example: "https://www.google.com"
  • :query - list of query params. Example: [{"param", "value"}] will be translated to ?params=value. Note: query params passed in url (e.g. "/get?param=value") are not parsed to query field.
  • :headers - list of request/response headers. Example: [{"content-type", "application/json"}]. Note: request headers are overridden by response headers when adapter is called.
  • :body - request/response body. Note: request body is overridden by response body when adapter is called.
  • :status - response status. Example: 200
  • :opts - list of options. Example: [adapter: [recv_timeout: 30_000]]

Link to this section Summary

Link to this section Types

Specs

body() :: any()

Specs

client() :: Tesla.Client.t()

Specs

headers() :: [{binary(), binary()}]

Specs

method() :: :head | :get | :delete | :trace | :options | :post | :put | :patch

Specs

opts() :: keyword()

Specs

param() :: binary() | [{binary() | atom(), param()}]

Specs

query() :: [{binary() | atom(), param()}]

Specs

result() :: {:ok, t()} | {:error, any()}

Specs

runtime() ::
  {atom(), atom(), any()}
  | {atom(), atom()}
  | {:fn, (t() -> t())}
  | {:fn, (t(), stack() -> t())}

Specs

stack() :: [runtime()]

Specs

status() :: integer() | nil

Specs

t() :: %Tesla.Env{
  __client__: client(),
  __module__: atom(),
  body: body(),
  headers: headers(),
  method: method(),
  opts: opts(),
  query: query(),
  status: status(),
  url: url()
}

Specs

url() :: binary()