Rust Actix Web 项目实战教程:构建用户管理系统
项目概述
本教程将指导你使用 Rust 和 Actix Web 构建一个完整的用户管理系统,包括数据库交互、Redis 缓存和 Swagger UI 文档。
技术栈
- Rust 编程语言
- Actix Web 框架
- SQLx (MySQL 数据库)
- Redis 缓存
- Utoipa (OpenAPI 文档)
- Dotenv (环境变量管理)
项目结构
actix_web_project/
├── Cargo.toml
├── .env
├── src/
│ ├── main.rs # 应用入口
│ ├── models.rs # 数据模型
│ ├── routes.rs # API 路由处理
│ ├── state.rs # 应用状态管理
│ └── docs.rs # OpenAPI 文档
└── setup_database.sql # 数据库初始化脚本
准备工作
1. 安装依赖
确保你已安装:
- Rust (https://rustup.rs/)
- MySQL
- Redis
2. 创建项目
cargo new actix_web_project
cd actix_web_project
3. 配置 Cargo.toml
[dependencies]
actix-web = "4.9.0"
sqlx = { version = "0.7.4", features = ["mysql", "runtime-tokio"] }
redis = { version = "0.24", features = ["tokio-comp"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
dotenv = "0.15"
utoipa = { version = "5.3.1", features = ["actix_extras"] }
utoipa-swagger-ui = { version = "9.0.0", features = ["actix-web"] }
4. 数据库设置
创建 setup_database.sql
:
CREATE DATABASE user_management;
USE user_management;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
INSERT INTO users (name, email) VALUES
('张三', '[email protected]'),
('李四', '[email protected]');
5. 环境变量 (.env)
DATABASE_URL=mysql://username:password@localhost/user_management
REDIS_URL=redis://127.0.0.1:6379
代码实现
models.rs
use serde::{
Deserialize, Serialize};
use utoipa::ToSchema;
#[derive(Debug, Serialize, Deserialize, ToSchema)]
pub struct Use