自定义中间件
中间件结构
use silent::prelude::*;
struct MyMiddleware;
#[async_trait]
impl MiddleWareHandler for MyMiddleware {
async fn handle(&self, req: Request, next: &Next) -> Result<Response> {
// 前置处理
println!("Before request: {}", req.uri());
// 调用下一个中间件或处理器
let res = next.call(req).await?;
// 后置处理
println!("After request: {}", res.status());
Ok(res)
}
}中间件生命周期
示例:请求计时中间件
注册使用
中间件执行顺序
最佳实践
Last updated