← 学习中心

Axum 路由入门

Router、handler 与启动服务

本节你将能

用 Axum 定义路由并启动一个 Hello HTTP 服务。

直觉模型

Router 是前台分诊台:按方法与路径把请求交给 handler;handler 是异步函数,返回可转成响应的类型。

核心要点

  • Router::new().route("/" , get(handler))
  • axum::serve + TcpListener 监听端口
  • 依赖:axum、tokio(features = full 或按需)
use axum::{routing::get, Router};
async fn hello() -> &'static str { "ok" }
#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(hello));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}

常见误区

handler 签名与提取器不匹配时,错误信息较长——逐个核对参数类型。

动手

增加 GET /health 返回 JSON {"status":"up"}。

互动

测验:Axum 与 Tokio 的关系。

本节小结

下一节用提取器读路径/JSON,并用中间件横切日志与鉴权。

Axum 路由入门 - 生命科学与前沿科技学习平台 | 必学必会