427 lines
8.9 KiB
Markdown
427 lines
8.9 KiB
Markdown
|
|
1. 使用.Net core 9.0
|
|||
|
|
2. 使用Ef codefirst 自动更新数据库字段
|
|||
|
|
3. 使用Open Api接口文档
|
|||
|
|
4. 使用Mysql数据库
|
|||
|
|
|
|||
|
|
基于你的产品设计,我来帮你定义核心接口的出参入参。以下是主要接口设计:
|
|||
|
|
|
|||
|
|
## 1. 用户认证模块
|
|||
|
|
|
|||
|
|
### 1.1 用户注册
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/auth/register
|
|||
|
|
入参:
|
|||
|
|
{
|
|||
|
|
"username": "string", // 用户名
|
|||
|
|
"email": "string", // 邮箱
|
|||
|
|
"password": "string", // 密码
|
|||
|
|
"avatar": "string?" // 头像URL(可选)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"email": "string",
|
|||
|
|
"avatar": "string",
|
|||
|
|
"token": "string",
|
|||
|
|
"refreshToken": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 1.2 用户登录
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/auth/login
|
|||
|
|
入参:
|
|||
|
|
{
|
|||
|
|
"email": "string",
|
|||
|
|
"password": "string"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参: // 同注册出参
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 2. 邮件管理模块
|
|||
|
|
|
|||
|
|
### 2.1 创建未来邮件
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/mails
|
|||
|
|
入参:
|
|||
|
|
{
|
|||
|
|
"title": "string",
|
|||
|
|
"content": "string",
|
|||
|
|
"recipientType": "SELF" | "SPECIFIC" | "PUBLIC", // 收件人类型
|
|||
|
|
"recipientEmail": "string?", // 指定收件人邮箱(当recipientType为SPECIFIC时必填)
|
|||
|
|
"sendTime": "string", // ISO时间格式 "2025-12-31T23:59:59Z"
|
|||
|
|
"triggerType": "TIME" | "LOCATION" | "EVENT",
|
|||
|
|
"triggerCondition": {
|
|||
|
|
"location": {
|
|||
|
|
"latitude": "number?",
|
|||
|
|
"longitude": "number?",
|
|||
|
|
"city": "string?"
|
|||
|
|
},
|
|||
|
|
"event": {
|
|||
|
|
"keywords": "string[]?",
|
|||
|
|
"type": "string?"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"attachments": [
|
|||
|
|
{
|
|||
|
|
"type": "IMAGE" | "VOICE" | "VIDEO",
|
|||
|
|
"url": "string",
|
|||
|
|
"thumbnail": "string?"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"isEncrypted": "boolean",
|
|||
|
|
"capsuleStyle": "string" // 胶囊皮肤
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"mailId": "string",
|
|||
|
|
"capsuleId": "string",
|
|||
|
|
"status": "DRAFT" | "PENDING" | "DELIVERING" | "DELIVERED",
|
|||
|
|
"createdAt": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 获取邮件列表
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/mails
|
|||
|
|
查询参数:
|
|||
|
|
{
|
|||
|
|
"type": "INBOX" | "SENT" | "DRAFT", // 邮件类型
|
|||
|
|
"status": "PENDING" | "DELIVERING" | "DELIVERED", // 状态筛选
|
|||
|
|
"page": "number",
|
|||
|
|
"size": "number"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"list": [
|
|||
|
|
{
|
|||
|
|
"mailId": "string",
|
|||
|
|
"title": "string",
|
|||
|
|
"sender": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatar": "string"
|
|||
|
|
},
|
|||
|
|
"recipient": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatar": "string"
|
|||
|
|
},
|
|||
|
|
"sendTime": "string",
|
|||
|
|
"deliveryTime": "string?",
|
|||
|
|
"status": "string",
|
|||
|
|
"hasAttachments": "boolean",
|
|||
|
|
"isEncrypted": "boolean",
|
|||
|
|
"capsuleStyle": "string",
|
|||
|
|
"countdown": "number?" // 倒计时秒数(仅status=PENDING时返回)
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"total": "number",
|
|||
|
|
"page": "number",
|
|||
|
|
"size": "number"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.3 获取邮件详情
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/mails/{mailId}
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"mailId": "string",
|
|||
|
|
"title": "string",
|
|||
|
|
"content": "string",
|
|||
|
|
"sender": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatar": "string",
|
|||
|
|
"email": "string"
|
|||
|
|
},
|
|||
|
|
"recipient": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatar": "string",
|
|||
|
|
"email": "string"
|
|||
|
|
},
|
|||
|
|
"sendTime": "string",
|
|||
|
|
"createdAt": "string",
|
|||
|
|
"deliveryTime": "string?",
|
|||
|
|
"status": "string",
|
|||
|
|
"triggerType": "string",
|
|||
|
|
"triggerCondition": "object",
|
|||
|
|
"attachments": [
|
|||
|
|
{
|
|||
|
|
"id": "string",
|
|||
|
|
"type": "string",
|
|||
|
|
"url": "string",
|
|||
|
|
"thumbnail": "string?",
|
|||
|
|
"size": "number"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"isEncrypted": "boolean",
|
|||
|
|
"capsuleStyle": "string",
|
|||
|
|
"canEdit": "boolean", // 是否可编辑(仅草稿状态)
|
|||
|
|
"canRevoke": "boolean" // 是否可撤销(仅待投递状态)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.4 更新邮件(投递前)
|
|||
|
|
```typescript
|
|||
|
|
PUT /api/v1/mails/{mailId}
|
|||
|
|
入参: // 同创建邮件,但所有字段可选
|
|||
|
|
出参: // 同创建邮件出参
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.5 撤销发送
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/mails/{mailId}/revoke
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"mailId": "string",
|
|||
|
|
"status": "REVOKED"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 3. 时光胶囊模块
|
|||
|
|
|
|||
|
|
### 3.1 获取时光胶囊视图
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/capsules
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"capsules": [
|
|||
|
|
{
|
|||
|
|
"capsuleId": "string",
|
|||
|
|
"mailId": "string",
|
|||
|
|
"title": "string",
|
|||
|
|
"sendTime": "string",
|
|||
|
|
"deliveryTime": "string",
|
|||
|
|
"progress": "number", // 0-1 的进度
|
|||
|
|
"position": {
|
|||
|
|
"x": "number", // 0-1 相对位置
|
|||
|
|
"y": "number",
|
|||
|
|
"z": "number"
|
|||
|
|
},
|
|||
|
|
"style": "string",
|
|||
|
|
"glowIntensity": "number" // 发光强度
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"scene": "SPACE" | "OCEAN", // 场景类型
|
|||
|
|
"background": "string" // 背景配置
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 4. AI助手模块
|
|||
|
|
|
|||
|
|
### 4.1 AI写作辅助
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/ai/writing-assistant
|
|||
|
|
入参:
|
|||
|
|
{
|
|||
|
|
"prompt": "string", // 用户输入
|
|||
|
|
"type": "OUTLINE" | "DRAFT" | "COMPLETE", // 辅助类型
|
|||
|
|
"tone": "FORMAL" | "CASUAL" | "EMOTIONAL" | "INSPIRATIONAL", // 语气
|
|||
|
|
"length": "SHORT" | "MEDIUM" | "LONG", // 长度
|
|||
|
|
"context": "string?" // 上下文信息
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"content": "string",
|
|||
|
|
"suggestions": "string[]",
|
|||
|
|
"estimatedTime": "number" // 预计写作时间(分钟)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.2 情感分析
|
|||
|
|
```typescript
|
|||
|
|
POST /api/v1/ai/sentiment-analysis
|
|||
|
|
入参:
|
|||
|
|
{
|
|||
|
|
"content": "string"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"sentiment": "POSITIVE" | "NEUTRAL" | "NEGATIVE" | "MIXED",
|
|||
|
|
"confidence": "number", // 0-1 置信度
|
|||
|
|
"emotions": [
|
|||
|
|
{
|
|||
|
|
"type": "HAPPY" | "SAD" | "HOPEFUL" | "NOSTALGIC" | "EXCITED",
|
|||
|
|
"score": "number"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"keywords": "string[]",
|
|||
|
|
"summary": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 5. 个人空间模块
|
|||
|
|
|
|||
|
|
### 5.1 获取时间线
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/timeline
|
|||
|
|
查询参数:
|
|||
|
|
{
|
|||
|
|
"startDate": "string?",
|
|||
|
|
"endDate": "string?",
|
|||
|
|
"type": "ALL" | "SENT" | "RECEIVED"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"timeline": [
|
|||
|
|
{
|
|||
|
|
"date": "string",
|
|||
|
|
"events": [
|
|||
|
|
{
|
|||
|
|
"type": "SENT" | "RECEIVED",
|
|||
|
|
"mailId": "string",
|
|||
|
|
"title": "string",
|
|||
|
|
"time": "string",
|
|||
|
|
"withUser": {
|
|||
|
|
"userId": "string",
|
|||
|
|
"username": "string",
|
|||
|
|
"avatar": "string"
|
|||
|
|
},
|
|||
|
|
"emotion": "string"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 获取统计数据
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/statistics
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"totalSent": "number",
|
|||
|
|
"totalReceived": "number",
|
|||
|
|
"timeTravelDuration": "number", // 总时间旅行时长(天)
|
|||
|
|
"mostFrequentRecipient": "string",
|
|||
|
|
"mostCommonYear": "number",
|
|||
|
|
"keywordCloud": [
|
|||
|
|
{
|
|||
|
|
"word": "string",
|
|||
|
|
"count": "number",
|
|||
|
|
"size": "number"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"monthlyStats": [
|
|||
|
|
{
|
|||
|
|
"month": "string",
|
|||
|
|
"sent": "number",
|
|||
|
|
"received": "number"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 6. 系统管理模块
|
|||
|
|
|
|||
|
|
### 6.1 获取用户订阅信息
|
|||
|
|
```typescript
|
|||
|
|
GET /api/v1/user/subscription
|
|||
|
|
出参:
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"message": "success",
|
|||
|
|
"data": {
|
|||
|
|
"plan": "FREE" | "PREMIUM",
|
|||
|
|
"remainingMails": "number",
|
|||
|
|
"maxAttachmentSize": "number",
|
|||
|
|
"features": {
|
|||
|
|
"advancedTriggers": "boolean",
|
|||
|
|
"customCapsules": "boolean",
|
|||
|
|
"aiAssistant": "boolean"
|
|||
|
|
},
|
|||
|
|
"expireDate": "string?"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 需要的核心接口列表
|
|||
|
|
|
|||
|
|
1. **认证相关**
|
|||
|
|
- 用户注册 `/api/v1/auth/register`
|
|||
|
|
- 用户登录 `/api/v1/auth/login`
|
|||
|
|
- 刷新token `/api/v1/auth/refresh`
|
|||
|
|
- 退出登录 `/api/v1/auth/logout`
|
|||
|
|
|
|||
|
|
2. **邮件管理**
|
|||
|
|
- 创建邮件 `/api/v1/mails`
|
|||
|
|
- 获取邮件列表 `/api/v1/mails`
|
|||
|
|
- 获取邮件详情 `/api/v1/mails/{mailId}`
|
|||
|
|
- 更新邮件 `/api/v1/mails/{mailId}`
|
|||
|
|
- 删除邮件 `/api/v1/mails/{mailId}`
|
|||
|
|
- 撤销发送 `/api/v1/mails/{mailId}/revoke`
|
|||
|
|
|
|||
|
|
3. **时光胶囊**
|
|||
|
|
- 获取胶囊视图 `/api/v1/capsules`
|
|||
|
|
- 更新胶囊样式 `/api/v1/capsules/{capsuleId}/style`
|
|||
|
|
|
|||
|
|
4. **AI助手**
|
|||
|
|
- 写作辅助 `/api/v1/ai/writing-assistant`
|
|||
|
|
- 情感分析 `/api/v1/ai/sentiment-analysis`
|
|||
|
|
- 未来预测 `/api/v1/ai/future-prediction`
|
|||
|
|
|
|||
|
|
5. **个人空间**
|
|||
|
|
- 时间线 `/api/v1/timeline`
|
|||
|
|
- 统计数据 `/api/v1/statistics`
|
|||
|
|
- 用户信息 `/api/v1/user/profile`
|
|||
|
|
|
|||
|
|
6. **文件上传**
|
|||
|
|
- 上传附件 `/api/v1/upload/attachment`
|
|||
|
|
- 上传头像 `/api/v1/upload/avatar`
|
|||
|
|
|
|||
|
|
7. **推送通知**
|
|||
|
|
- 注册设备 `/api/v1/notification/device`
|
|||
|
|
- 获取通知设置 `/api/v1/notification/settings`
|
|||
|
|
|
|||
|
|
这些接口设计考虑了产品的核心功能,包括邮件的创建、管理、投递,以及增强用户体验的AI功能和可视化功能。接口设计遵循RESTful原则,并考虑了扩展性和安全性。
|