# Rust User API 一个使用 Rust 和 Axum 框架构建的 REST API 服务器,用于用户管理系统的学习和演示。 ## 功能特性 - ✅ 用户 CRUD 操作(创建、读取、更新、删除) - ✅ 内存存储(HashMap) - ✅ 请求验证和错误处理 - ✅ JWT 身份认证 - ✅ 结构化日志记录 - 🔄 SQLite 数据库集成(计划中) - 🔄 API 文档和测试(计划中) ## 技术栈 - **Web 框架**: Axum 0.7 - **异步运行时**: Tokio - **序列化**: Serde - **身份认证**: JWT (jsonwebtoken) - **验证**: Validator - **日志**: Tracing ## 快速开始 ### 1. 克隆项目 ```bash git clone cd rust-user-api ``` ### 2. 配置环境 ```bash cp .env.example .env # 编辑 .env 文件,修改配置参数 ``` ### 3. 运行项目 ```bash cargo run ``` 服务器将在 `http://127.0.0.1:3000` 启动。 ## API 端点 ### 基础端点 - `GET /` - 欢迎信息 - `GET /health` - 健康检查 ### 用户管理 - `GET /api/users` - 获取所有用户 - `GET /api/users/{id}` - 获取特定用户 - `POST /api/users` - 创建新用户 - `PUT /api/users/{id}` - 更新用户信息 - `DELETE /api/users/{id}` - 删除用户 ### 请求示例 #### 创建用户 ```bash curl -X POST http://localhost:3000/api/users \ -H "Content-Type: application/json" \ -d '{ "username": "testuser", "email": "test@example.com", "password": "password123" }' ``` #### 获取所有用户 ```bash curl http://localhost:3000/api/users ``` ## 项目结构 ``` src/ ├── main.rs # 应用入口点 ├── lib.rs # 库入口 ├── config/ # 配置管理 ├── models/ # 数据模型 ├── handlers/ # HTTP 处理器 ├── routes/ # 路由配置 ├── services/ # 业务逻辑 ├── storage/ # 数据存储 ├── middleware/ # 中间件 └── utils/ # 工具函数 ``` ## 开发 ### 运行测试 ```bash cargo test ``` ### 检查代码 ```bash cargo clippy ``` ### 格式化代码 ```bash cargo fmt ``` ## 学习路径 这个项目按照以下阶段设计,适合渐进式学习: 1. **基础搭建** - 项目初始化和 HTTP 服务器 2. **数据模型** - 用户模型和内存存储 3. **CRUD 操作** - 完整的用户管理 API 4. **错误处理** - 统一的错误处理机制 5. **身份认证** - JWT 认证系统 6. **测试文档** - 测试用例和 API 文档 7. **数据库集成** - SQLite 数据库支持 8. **高级功能** - 分页、搜索、过滤等 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 许可证 MIT License