Core HTTP request pipeline for the railsr client.
Handles:
- Automatic
Authorization: Bearerinjection viaRailsr.Auth.TokenCache - Idempotency key generation and attachment on POST/PUT/PATCH
- Full-jitter exponential backoff on 429 and 5xx responses
Telemetry emission at
[:railsr, :request, :start | :stop | :exception]- Circuit breaker check via
Railsr.Middleware.CircuitBreaker - Rate limiting via
Railsr.Middleware.RateLimiter - Response deserialisation and structured error wrapping
You should not call this module directly — use the resource modules.
Summary
Functions
Convenience wrapper: DELETE request.
Convenience wrapper: GET request.
Convenience wrapper: PATCH request.
Convenience wrapper: POST request.
Convenience wrapper: PUT request.
Execute an HTTP request through the full middleware pipeline.
Functions
@spec delete( String.t(), keyword() ) :: {:ok, any()} | {:error, Railsr.Error.t()}
Convenience wrapper: DELETE request.
@spec get( String.t(), keyword() ) :: {:ok, any()} | {:error, Railsr.Error.t()}
Convenience wrapper: GET request.
@spec patch(String.t(), map(), keyword()) :: {:ok, any()} | {:error, Railsr.Error.t()}
Convenience wrapper: PATCH request.
@spec post(String.t(), map(), keyword()) :: {:ok, any()} | {:error, Railsr.Error.t()}
Convenience wrapper: POST request.
@spec put(String.t(), map(), keyword()) :: {:ok, any()} | {:error, Railsr.Error.t()}
Convenience wrapper: PUT request.
@spec request(keyword()) :: {:ok, map() | list()} | {:error, Railsr.Error.t()}
Execute an HTTP request through the full middleware pipeline.
Options
:method—:get | :post | :put | :patch | :delete:path— API path string, e.g."/v1/customer/ledgers":body— map to be JSON-encoded (optional):query— map of query parameters (optional):headers— additional headers keyword list (optional):idempotency_key— override auto-generated key (optional):environment— override:environmentconfig (optional):timeout— override timeout (optional)