Skip to main content

Module request_id

Module request_id 

Source
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§

RequestId
Extracted request ID. Always present when RequestIdLayer is in the middleware stack — empty string otherwise.
RequestIdLayer
Configuration for the request-ID middleware.

Traits§

RequestIdRouterExt
Extension trait — .request_id(layer) on Router.