Skip to main content

rs_zero/rest/middleware/
request_id.rs

1use axum::http::HeaderName;
2use tower_http::request_id::{MakeRequestUuid, PropagateRequestIdLayer, SetRequestIdLayer};
3
4/// Header used for request correlation.
5pub const REQUEST_ID_HEADER: &str = "x-request-id";
6
7/// Layer that sets a request id when missing.
8pub fn set_request_id_layer() -> SetRequestIdLayer<MakeRequestUuid> {
9    SetRequestIdLayer::new(HeaderName::from_static(REQUEST_ID_HEADER), MakeRequestUuid)
10}
11
12/// Layer that propagates the request id to responses.
13pub fn propagate_request_id_layer() -> PropagateRequestIdLayer {
14    PropagateRequestIdLayer::new(HeaderName::from_static(REQUEST_ID_HEADER))
15}