build: echo request id response header

This commit is contained in:
2026-04-21 01:30:16 +08:00
parent f7663076a5
commit 0cbda6aa7c
5 changed files with 30 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
use axum::{
extract::Request,
http::{header::HeaderName, HeaderValue},
middleware::Next,
response::Response,
};
use crate::request_context::{resolve_request_id, X_REQUEST_ID_HEADER};
pub async fn propagate_request_id_header(request: Request, next: Next) -> Response {
let request_id = resolve_request_id(&request);
let mut response = next.run(request).await;
if let Some(request_id) = request_id {
if let Ok(header_value) = HeaderValue::from_str(&request_id) {
response
.headers_mut()
.insert(HeaderName::from_static(X_REQUEST_ID_HEADER), header_value);
}
}
response
}