Expand description
Request ID middleware — assign per-request correlation IDs,
honor inbound X-Request-Id for end-to-end propagation. See
request_id::RequestIdLayer.
Request ID middleware — assign a unique ID to every incoming request.
Adds an X-Request-Id response header and exposes the value via the
[RequestId] axum extractor so handlers can include it in log events.
Honors an inbound X-Request-Id header by default (useful for chained
services that want to propagate IDs end-to-end), or always generates
a fresh one with [RequestIdLayer::always_generate].
§Quick start
ⓘ
use rustango::request_id::{RequestIdLayer, RequestIdRouterExt, RequestId};
let app = Router::new()
.route("/me", get(handler))
.request_id(RequestIdLayer::default());
async fn handler(id: RequestId) -> String {
tracing::info!(req_id = %id.0, "handling /me");
format!("request {}", id.0)
}Structs§
- Request
Id - Extracted request ID. Always present when
RequestIdLayeris in the middleware stack — empty string otherwise. - Request
IdLayer - Configuration for the request-ID middleware.
Traits§
- Request
IdRouter Ext - Extension trait —
.request_id(layer)on Router.