138 lines
3.2 KiB
Markdown
138 lines
3.2 KiB
Markdown
|
|
# FutureMail API 项目
|
|||
|
|
|
|||
|
|
这是一个基于.NET Core 9.0的未来邮件系统API,支持创建定时邮件、时光胶囊、AI辅助等功能。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
- 用户认证与授权
|
|||
|
|
- 创建和管理未来邮件
|
|||
|
|
- 时光胶囊可视化
|
|||
|
|
- AI写作辅助和情感分析
|
|||
|
|
- 个人时间线和统计数据
|
|||
|
|
- 文件上传功能
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- .NET Core 9.0
|
|||
|
|
- Entity Framework Core (Code First)
|
|||
|
|
- MySQL数据库
|
|||
|
|
- JWT身份验证
|
|||
|
|
- Swagger API文档
|
|||
|
|
- Quartz.NET任务调度
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 运行项目
|
|||
|
|
|
|||
|
|
最简单的方法是使用提供的启动脚本:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
start_project.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这将:
|
|||
|
|
- 启动API服务器
|
|||
|
|
- 打开Swagger文档页面
|
|||
|
|
- 打开API测试页面
|
|||
|
|
|
|||
|
|
### 2. 手动运行
|
|||
|
|
|
|||
|
|
如果需要手动运行,请按照以下步骤:
|
|||
|
|
|
|||
|
|
1. 启动API服务器:
|
|||
|
|
```bash
|
|||
|
|
cd FutureMailAPI
|
|||
|
|
dotnet run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 访问Swagger文档:
|
|||
|
|
```
|
|||
|
|
http://localhost:5003/swagger
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 使用API测试页面:
|
|||
|
|
```
|
|||
|
|
打开 api_test.html 文件
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API文档
|
|||
|
|
|
|||
|
|
详细的API文档请参考:
|
|||
|
|
- [API接口文档详细说明.md](./API接口文档详细说明.md)
|
|||
|
|
- Swagger交互式文档:http://localhost:5003/swagger
|
|||
|
|
|
|||
|
|
## 主要接口
|
|||
|
|
|
|||
|
|
### 认证相关
|
|||
|
|
- `POST /api/v1/auth/register` - 用户注册
|
|||
|
|
- `POST /api/v1/auth/login` - 用户登录
|
|||
|
|
- `POST /api/v1/auth/refresh` - 刷新令牌
|
|||
|
|
- `POST /api/v1/auth/logout` - 用户登出
|
|||
|
|
|
|||
|
|
### 邮件管理
|
|||
|
|
- `POST /api/v1/mails/create` - 创建邮件
|
|||
|
|
- `GET /api/v1/mails` - 获取邮件列表
|
|||
|
|
- `GET /api/v1/mails/{mailId}` - 获取邮件详情
|
|||
|
|
- `PUT /api/v1/mails/{mailId}` - 更新邮件
|
|||
|
|
- `DELETE /api/v1/mails/{mailId}` - 删除邮件
|
|||
|
|
- `POST /api/v1/mails/{mailId}/revoke` - 撤销发送
|
|||
|
|
|
|||
|
|
### 时光胶囊
|
|||
|
|
- `GET /api/v1/capsules` - 获取胶囊视图
|
|||
|
|
- `PUT /api/v1/capsules/{capsuleId}/style` - 更新胶囊样式
|
|||
|
|
|
|||
|
|
### AI助手
|
|||
|
|
- `POST /api/v1/ai/writing-assistant` - AI写作辅助
|
|||
|
|
- `POST /api/v1/ai/sentiment-analysis` - 情感分析
|
|||
|
|
|
|||
|
|
### 个人空间
|
|||
|
|
- `GET /api/v1/timeline` - 获取时间线
|
|||
|
|
- `GET /api/v1/statistics` - 获取统计数据
|
|||
|
|
- `GET /api/v1/user/profile` - 获取用户信息
|
|||
|
|
|
|||
|
|
### 文件上传
|
|||
|
|
- `POST /api/v1/upload/attachment` - 上传附件
|
|||
|
|
- `POST /api/v1/upload/avatar` - 上传头像
|
|||
|
|
|
|||
|
|
## 数据库配置
|
|||
|
|
|
|||
|
|
数据库连接字符串配置在 `appsettings.json` 文件中:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"ConnectionStrings": {
|
|||
|
|
"DefaultConnection": "Server=localhost;Database=FutureMailDB;User=root;Password=yourpassword;"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
请根据您的MySQL配置修改连接字符串。
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
FutureMailAPI/
|
|||
|
|
├── Controllers/ # API控制器
|
|||
|
|
├── DTOs/ # 数据传输对象
|
|||
|
|
├── Data/ # 数据模型和上下文
|
|||
|
|
├── Helpers/ # 辅助类
|
|||
|
|
├── Middleware/ # 中间件
|
|||
|
|
├── Services/ # 服务类
|
|||
|
|
├── Program.cs # 应用程序入口点
|
|||
|
|
└── appsettings.json # 配置文件
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试
|
|||
|
|
|
|||
|
|
项目包含一个完整的API测试页面 `api_test.html`,可以测试所有主要API接口。
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 确保MySQL服务器已安装并运行
|
|||
|
|
2. 首次运行时,EF Core会自动创建数据库和表
|
|||
|
|
3. JWT密钥应在生产环境中更改为安全的值
|
|||
|
|
4. 文件上传功能需要配置适当的存储路径
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
本项目仅供学习和演示使用。
|