build: add api server error normalization layer

This commit is contained in:
2026-04-21 01:24:09 +08:00
parent 0ac5606a41
commit cb069de32e
8 changed files with 146 additions and 2 deletions

View File

@@ -3,6 +3,7 @@ use tower_http::trace::{DefaultOnFailure, DefaultOnRequest, DefaultOnResponse, T
use tracing::{info_span, Level};
use crate::{
error_middleware::normalize_error_response,
request_context::{attach_request_context, resolve_request_id},
state::AppState,
};
@@ -10,6 +11,8 @@ use crate::{
// 统一由这里构造 Axum 路由树,后续再逐项挂接中间件与业务路由。
pub fn build_router(state: AppState) -> Router {
Router::new()
// 错误归一化层放在 tracing 里侧,让 tracing 记录到最终对外返回的状态与错误体形态。
.layer(middleware::from_fn(normalize_error_response))
// 当前阶段先统一挂接 HTTP tracing后续 request_id、响应头与错误中间件继续在这里扩展。
.layer(
TraceLayer::new_for_http()