View Source ExDatacube.API (ExDatacube v0.2.0)

Módulo de comunicação com a API da Datacube.

Link to this section Summary

Types

Se token de autenticação à API for fornecido nas opções, ele será incluído no body da requisição caso um token não exista no mapa de parâmetros fornecido.

Função de decodificação dos retornos da API. Default Jason.decode!/1

Função de codificação dos parâmetros para x-www-form-urlencoded. Default URI.encode_query/1

Mensagems de erros dos campos fora do contrato estabelecido pela API.

Erros de network (provenientes do Finch).

Functions

URL base da API.

Faz uma chamada post à API no endpoint path. Converte params para x-www-form-urlencoded.

Concatena path com url base da API.

Link to this section Types

@type auth_token() :: String.t()

Se token de autenticação à API for fornecido nas opções, ele será incluído no body da requisição caso um token não exista no mapa de parâmetros fornecido.

@type decode() :: (binary() -> map())

Função de decodificação dos retornos da API. Default Jason.decode!/1

@type encode() :: (map() -> binary())

Função de codificação dos parâmetros para x-www-form-urlencoded. Default URI.encode_query/1

@type error_message() :: String.t()

Mensagems de erros dos campos fora do contrato estabelecido pela API.

@type errors() :: %{required(field()) => [error_message()]}
@type exception_error() :: {:error, Exception.t()}

Erros de network (provenientes do Finch).

@type field() :: atom()
@type opts() :: [
  encode: encode(),
  decode: decode(),
  auth_token: auth_token(),
  receive_timeout: pos_integer()
]
@type resposta_invalida() :: {:error, {:resposta_invalida, errors()}}

Link to this section Functions

@spec base_url() :: base_urk :: String.t()

URL base da API.

Link to this function

post(path, params, opts \\ [])

View Source
@spec post(path :: String.t(), body :: map() | String.t(), opts()) ::
  {:ok, ExDatacube.API.Resposta.t()} | exception_error() | resposta_invalida()

Faz uma chamada post à API no endpoint path. Converte params para x-www-form-urlencoded.

exemplos

Exemplos

Requisitar consulta simples de uma placa:

{:ok, %Resposta{} = resposta} = ExDatacube.API.post(
  "veiculos/informacao-simples",
  %{placa: "FLT9034"},
  auth_token: "XXX"
)
@spec url(path :: String.t()) :: url :: String.t()

Concatena path com url base da API.