Qings

Axum 0.8 路由与中间件速览

2026-07-02 技术 #Axum #Web 阅读 42

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)

正在回复
4 + 4 = ?

暂无评论,快来抢沙发