ApiBrasil.Core.Config (APIBrasil v0.0.1)

Copy Markdown View Source

Configuração do cliente.

Campos não informados são lidos das variáveis de ambiente APIBRASIL_BEARER_TOKEN, APIBRASIL_DEVICE_TOKEN, APIBRASIL_SECRET_KEY e APIBRASIL_BASE_URL. Credenciais vazias contam como ausentes: informar "" é a forma de desligar o que veio do ambiente.

ApiBrasil.new(bearer_token: "jwt", device_token: "device")

# o mesmo, via configuração da aplicação
config :apibrasil,
  bearer_token: {:system, "APIBRASIL_BEARER_TOKEN"},
  timeout: 60_000

Summary

Functions

Configuração do cliente.

Base da API usada quando nada é informado.

Tempo limite padrão das requisições, em milissegundos.

Devolve a configuração equivalente a um cliente já montado.

Lê a configuração das variáveis de ambiente e da configuração da aplicação (config :apibrasil, ...).

Devolve esta configuração sobreposta por override — os campos preenchidos em override têm prioridade.

Cria uma configuração a partir de uma keyword list, mapa ou struct.

Resolve a configuração com o ambiente e devolve o cliente pronto para uso.

Types

t()

@type t() :: %ApiBrasil.Core.Config{
  base_url: String.t() | nil,
  bearer_token: String.t() | nil,
  device_token: String.t() | nil,
  headers: map(),
  hooks: ApiBrasil.Core.Hooks.t(),
  options: keyword(),
  retry: ApiBrasil.Core.Retry.t() | nil,
  secret_key: String.t() | nil,
  timeout: non_neg_integer() | nil,
  transport: ApiBrasil.Core.Transport.t() | nil
}

Functions

%ApiBrasil.Core.Config{}

(struct)

Configuração do cliente.

  • :bearer_token — token JWT obtido no login (Authorization: Bearer);
  • :device_token — token do dispositivo, exigido pelos serviços device-based;
  • :secret_key — SecretKey da API, usada apenas na criação de devices;
  • :base_url — base da API. Padrão: https://gateway.apibrasil.io/api/v2;
  • :timeout — tempo limite das requisições em ms. Padrão: 30000;
  • :headers — headers adicionais enviados em todas as requisições;
  • :transport — camada de transporte HTTP. Padrão: ApiBrasil.Core.Transport.Httpc;
  • :retry — política de retry. Padrão: %ApiBrasil.Core.Retry{};
  • :hooks — ganchos de observabilidade;
  • :options — opções aplicadas a todas as chamadas do cliente.

default_base_url()

@spec default_base_url() :: String.t()

Base da API usada quando nada é informado.

default_timeout()

@spec default_timeout() :: pos_integer()

Tempo limite padrão das requisições, em milissegundos.

from_client(client)

@spec from_client(ApiBrasil.Client.t()) :: t()

Devolve a configuração equivalente a um cliente já montado.

from_env()

@spec from_env() :: t()

Lê a configuração das variáveis de ambiente e da configuração da aplicação (config :apibrasil, ...).

merge(base, override)

@spec merge(t(), t()) :: t()

Devolve esta configuração sobreposta por override — os campos preenchidos em override têm prioridade.

new(config)

@spec new(t() | keyword() | map()) :: t()

Cria uma configuração a partir de uma keyword list, mapa ou struct.

resolve(config)

@spec resolve(t() | keyword() | map()) :: ApiBrasil.Client.t()

Resolve a configuração com o ambiente e devolve o cliente pronto para uso.