Axum是Tokio团队开发的Web框架,与Rust异步生态完美集成。 ## 项目搭建 ```toml [dependencies] axum = "0.7" tokio = { version = "1", features = ["full"] } serde = { version = "1", features = ["derive"] } serde_json = "1" ``` ## 基础路由 ```rust use axum::{ routing::{get, post}, Router, Json, }; use serde::{Deserialize, Serialize}; #[tokio::main] async fn main() { let app = Router::new() .route("/", get(root)) .route("/users", post(create_user)) .route("/users/:id", get(get_user)); let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); axum::serve(listener, app).await.unwrap(); } async fn root() -> &'static str { "Hello, World!" } ``` ## JSON处理 ```rust #[derive(Deserialize, Serialize)] struct CreateUser { username: String, email: String, } #[derive(Serialize)] struct User { id: u64, username: String, email: String, } async fn create_user(Json(payload): Json) -> Json { let user = User { id: 1, username: payload.username, email: payload.email, }; Json(user) } ``` ## 状态共享 ```rust use axum::extract::State; use std::sync::Arc; #[derive(Clone)] struct AppState { db: Arc, } async fn get_users(State(state): State) -> Json> { let users = state.db.get_all().await; Json(users) } ``` Axum简洁、高性能、类型安全,是Rust Web开发的首选框架。