feat: [阶段1] 项目初始化和基础设置

- 创建 Cargo.toml 配置文件,包含所有必要依赖
- 建立完整的项目模块结构(config, models, handlers, routes, services, storage, middleware, utils)
- 实现用户数据模型和内存存储
- 创建基础的 HTTP 处理器和路由配置
- 添加错误处理和 JWT 认证中间件
- 配置环境变量和日志系统
- 创建项目文档和学习指南
- 服务器可以成功编译和启动
This commit is contained in:
2025-08-04 16:49:50 +08:00
commit 28afc7532f
24 changed files with 2170 additions and 0 deletions

138
README.md Normal file
View File

@@ -0,0 +1,138 @@
# 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 <repository-url>
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