Axum 0.8 路由与中间件速览
Axum 0.8 路由与中间件速览
Axum 0.8 的路径参数语法从 :param 改为 {param}。
基础路由
Router::new()
.route("/", get(index))
.route("/post/{slug}", get(post))
.route("/admin", get(admin).layer(auth_layer))
提取器组合
State、Query、Path、Session 可以任意组合,按声明顺序提取。
async fn handler(
State(state): State<AppState>,
Query(q): Query<SearchQuery>,
Path(slug): Path<String>,
) -> Result<Html<String>, AppError> {
Ok(Html(format!("slug={slug}")))
}
中间件顺序
layer 是逆序叠加:后加的 layer 更靠近内核。静态资源、压缩、Session 各就各位。
- 第一层:Trace
- 第二层:Compression
- 第三层:Session
- 内核:路由
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 转载需注明出处:Qings · Axum 0.8 路由与中间件速览
评论(0)
正在回复
暂无评论,快来抢沙发