一个最小的 Axum 项目,可以这样起步:
[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"] }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();
}这一段代码背后的宇宙图,是这样的:
一辆 HTTP 货车进城
│
▼
TcpListener 在 3000 号关口接车
│
▼
Axum Router 看地图
│
▼
命中 GET /
│
▼
root() 这个检查窗口执勤
│
▼
&'static str 自动变成 HTTP 响应
│
▼
货车拿到放行回执离开先记一句:
Axum 入口不是“控制器类”,而是“先画 Router,再挂 Handler”。