View Source ExDatacube.API (ExDatacube v0.3.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

Erros resultantes na comunicação com o servidor.

Erros provenientes do servidor da API (tradução códigos http)

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 network_error_type() :: :network_error

Erros resultantes na comunicação com o servidor.

@type opts() :: [
  encode: encode(),
  decode: decode(),
  auth_token: auth_token(),
  receive_timeout: pos_integer()
]
@type server_error_type() ::
  :bad_request
  | :unauthorized
  | :payment_required
  | :forbidden
  | :not_found
  | :method_not_allowed
  | :too_many_requests
  | :method_failure
  | :internal_server_error
  | :service_unavailable
  | :unknown_error

Erros provenientes do servidor da API (tradução códigos http)

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()} | {:error, error()}

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.