全书目录

第三十九篇:Axum 完全指南 —— Rust 类型关口宇宙

第三章:先把总关开起来 —— 你的第一个 Axum 服务

1 分钟 87 字 第 749 / 962 个阅读单元

一个最小的 Axum 项目,可以这样起步:

toml
[package]
name = "type-gateway"
version = "0.1.0"
edition = "2021"

[dependencies]
axum = "0.8.8"
tokio = { version = "1.50.0", features = ["full"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
rust
use axum::{routing::get, Router};

async fn root() -> &'static str {
    "北境类型总关已开闸"
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt::init();

    let app = Router::new().route("/", get(root));

    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000")
        .await
        .unwrap();

    axum::serve(listener, app).await.unwrap();
}

这一段代码背后的宇宙图,是这样的:

text
一辆 HTTP 货车进城
        │
        ▼
TcpListener 在 3000 号关口接车
        │
        ▼
Axum Router 看地图
        │
        ▼
命中 GET /
        │
        ▼
root() 这个检查窗口执勤
        │
        ▼
&'static str 自动变成 HTTP 响应
        │
        ▼
货车拿到放行回执离开

先记一句:

Axum 入口不是“控制器类”,而是“先画 Router,再挂 Handler”。