ApiBrasil.Core.HTTP (APIBrasil v0.0.1)

Copy Markdown View Source

Pipeline HTTP interno da SDK.

Injeta os headers de autenticação da plataforma (Authorization: Bearer, DeviceToken, SecretKey), aplica retry com backoff, dispara os hooks de observabilidade e converte falhas em ApiBrasil.Core.Error.

Opções por requisição

Todas as funções de serviço aceitam uma keyword list final com:

  • :query — query string, um mapa ou keyword (valores nil são ignorados);
  • :headers — headers extras desta requisição;
  • :bearer_token — Bearer Token só desta requisição;
  • :device_token — DeviceToken só desta requisição;
  • :secret_key — SecretKey desta requisição (header SecretKey);
  • :timeout — tempo limite desta requisição, em ms;
  • :response_type:json (padrão) ou :binary para baixar bytes crus.

Summary

Functions

Baixa o corpo cru de uma rota (PDF de boleto, imagens...).

Executa uma requisição e devolve o corpo já decodificado, sem normalizar em objeto JSON.

Mescla as opções padrão do cliente com as da chamada — headers e query são mesclados, os demais campos são sobrescritos.

Executa a requisição e devolve o corpo normalizado em um mapa JSON.

Monta a URL completa de um caminho.

Identificação da SDK enviada em User-Agent.

Functions

bytes(client, method, path, body \\ nil, opts \\ [])

Baixa o corpo cru de uma rota (PDF de boleto, imagens...).

delete(client, path, body \\ nil, opts \\ [])

@spec delete(ApiBrasil.Client.t(), String.t(), term(), keyword()) ::
  {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

DELETE path.

execute(client, method, path, body \\ nil, opts \\ [])

@spec execute(
  ApiBrasil.Client.t(),
  ApiBrasil.Core.Transport.method(),
  String.t(),
  term(),
  keyword()
) ::
  {:ok, term()} | {:error, ApiBrasil.Core.Error.t()}

Executa uma requisição e devolve o corpo já decodificado, sem normalizar em objeto JSON.

get(client, path, opts \\ [])

@spec get(ApiBrasil.Client.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

GET path.

merge_options(defaults, opts)

@spec merge_options(keyword(), keyword()) :: keyword()

Mescla as opções padrão do cliente com as da chamada — headers e query são mesclados, os demais campos são sobrescritos.

patch(client, path, body \\ nil, opts \\ [])

@spec patch(ApiBrasil.Client.t(), String.t(), term(), keyword()) ::
  {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

PATCH path.

post(client, path, body \\ nil, opts \\ [])

@spec post(ApiBrasil.Client.t(), String.t(), term(), keyword()) ::
  {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

POST path.

put(client, path, body \\ nil, opts \\ [])

@spec put(ApiBrasil.Client.t(), String.t(), term(), keyword()) ::
  {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

PUT path.

request_json(client, method, path, body \\ nil, opts \\ [])

@spec request_json(
  ApiBrasil.Client.t(),
  ApiBrasil.Core.Transport.method(),
  String.t(),
  term(),
  keyword()
) :: {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

Executa a requisição e devolve o corpo normalizado em um mapa JSON.

url(client, path)

@spec url(ApiBrasil.Client.t(), String.t()) :: String.t()

Monta a URL completa de um caminho.

user_agent()

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

Identificação da SDK enviada em User-Agent.