feat(http): implement shared HTTP client (ClientWithMiddleware + retry + Retry-After, OQ-40)

Adds SharedHttpClient wrapping ArcSwap<ClientWithMiddleware> with a
RetryTransientMiddleware + inlined RetryAfterMiddleware stack.
HttpClientConfig covers pool, timeout, retry policy, and optional CA
bundle/client cert. reload() rebuilds and swaps via ArcSwap. No env-var
reads; credential injection is per-request, not at construction.
This commit is contained in:
2026-07-01 17:20:49 +00:00
parent 1900c72deb
commit 081fc911ef
5 changed files with 634 additions and 2 deletions

View File

@@ -3,4 +3,8 @@
//!
//! See `docs/architecture/crates/http/http-adapters.md` and OQ-40.
// TODO: implement
mod http_client;
mod retry_after;
pub use http_client::{ClientCertConfig, HttpClientBuildError, HttpClientConfig, SharedHttpClient};
pub use retry_after::RetryAfterMiddleware;