Rust Web开发:Axum框架实战教程
3 阅读
预计 3 分钟
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开发的首选框架。
0 条评论 欢迎参与讨论