Coffrify.Client (Coffrify v0.9.0)

View Source

Low-level HTTP client used by every resource module.

Built on top of Req. All public API surfaces call request/5 — resources are thin wrappers that craft the path and query parameters and decode the response.

Features:

  • Pluggable retry policies (see Coffrify.Runtime.Retry)
  • Optional circuit breaker
  • Optional client-side rate limiter
  • Idempotency-Key auto-generation + crash-safe replay
  • Telemetry events ([:coffrify, :request, :start | :stop | :exception | :retry])

  • Per-request hooks (before_request, after_response, on_retry, on_error)

Summary

Functions

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

@spec request(
  Coffrify.t(),
  Coffrify.request_method(),
  String.t(),
  term(),
  Coffrify.request_opts()
) ::
  {:ok, term()} | {:error, Exception.t()}

Issue a request against the Coffrify API. See Coffrify.request/5.