build: add api server error normalization layer
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user