ApolloSignal.Transport (apollo_signal v4.0.1)

Copy Markdown View Source

Req-based transport with bounded, idempotency-aware retries and SSE support.

Summary

Types

metadata()

@type metadata() :: %{
  status: non_neg_integer() | nil,
  headers: term(),
  request_id: String.t() | nil
}

t()

@type t() :: %ApolloSignal.Transport{
  base_url: String.t(),
  default_headers: map(),
  max_retries: non_neg_integer(),
  req: term(),
  retry_unsafe_requests: boolean(),
  security_cookies: map(),
  security_headers: map(),
  security_query: map(),
  timeout_ms: pos_integer(),
  user_agent: String.t()
}

Functions

json_body(body)

@spec json_body(term()) :: term()

metadata()

@spec metadata() :: metadata()

metadata(response)

new(opts \\ [])

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

path(template, params)

@spec path(String.t(), map()) :: String.t()

request(transport, request)

@spec request(t(), map()) ::
  {:ok, ApolloSignal.Transport.Response.t()} | {:error, ApolloSignal.Errors.t()}

stream(transport, request)

@spec stream(t(), map()) ::
  {:ok, ApolloSignal.Transport.SSEStream.t(term())}
  | {:error, ApolloSignal.Errors.t()}