Files
DP/tempdocs/全量接口文档.md
zuowei1216 1b19ff1b92 20251222
2025-12-22 21:06:29 +08:00

413 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Server API 全量文档
## 概述
- **基础地址**`http://localhost:8000`
- **版本前缀**`/api/v1`
- **认证方式**
- Header: `Authorization: Bearer <access_token>` (用于普通用户接口)
- Header: `x-admin-token: admin-secret-token` (用于管理员接口)
- Header: `x-api-key: <key>` (用于部分工具接口)
---
## 📚 1. 认证模块 (Auth)
**Base Path**: `/api/v1/auth`
### 1.1 注册
- **URL**: `POST /register`
- **功能**: 用户注册
- **请求体**:
```json
{
"username": "user1",
"password": "password123",
"confirm_password": "password123",
"email": "user1@example.com", // 可选
"code": "123456", // 验证码(可选)
"device_id": "device_001" // 可选,默认 unknown_device
}
```
- **响应**:
```json
{
"access_token": "eyJhbG...",
"token_type": "bearer",
"username": "user1"
}
```
### 1.2 登录
- **URL**: `POST /login`
- **功能**: 用户登录,获取 Token
- **请求体**:
```json
{
"username": "user1",
"password": "password123",
"device_id": "device_001"
}
```
- **响应**: 同注册接口
### 1.3 发送验证码
- **URL**: `POST /send-verification-code`
- **功能**: 发送注册/验证邮件验证码
- **请求体**:
```json
{
"email": "user1@example.com"
}
```
### 1.4 验证邮箱
- **URL**: `POST /verify-email`
- **功能**: 验证邮箱验证码
- **请求体**:
```json
{
"username": "user1",
"code": "123456"
}
```
### 1.5 忘记密码
- **URL**: `POST /forgot-password`
- **功能**: 发送重置密码邮件
- **请求体**:
```json
{
"email": "user1@example.com"
}
```
### 1.6 重置密码
- **URL**: `POST /reset-password`
- **功能**: 使用 Token 重置密码
- **请求体**:
```json
{
"email": "user1@example.com",
"token": "123456",
"new_password": "newpassword123",
"confirm_password": "newpassword123"
}
```
### 1.7 登出
- **URL**: `POST /logout`
- **功能**: 退出当前设备登录
- **请求体**:
```json
{
"username": "user1",
"device_id": "device_001"
}
```
### 1.8 许可证验证 (Verify)
- **URL**: `POST /verify`
- **功能**: 验证当前 Token 和会话是否有效(用于应用启动检查)
- **Headers**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
"username": "user1",
"device_id": "device_001"
}
```
- **响应**:
```json
{
"valid": true,
"username": "user1",
"expire_date": "2025-12-31T23:59:59" // 若有过期时间
}
```
### 1.9 心跳 (Heartbeat)
- **URL**: `POST /heartbeat`
- **功能**: 维持会话活跃状态
- **请求体**:
```json
{
"username": "user1",
"device_id": "device_001"
}
```
### 1.10 获取在线时长
- **URL**: `GET /online-time/{username}`
- **功能**: 获取用户累计在线时长
- **响应**:
```json
{
"username": "user1",
"total_seconds": 3600, // 历史累计
"active_seconds": 120 // 当前会话
}
```
---
## 🖥️ 2. 客户端模块 (Client)
**Base Path**: `/api/v1/client`
### 2.1 检查更新
- **URL**: `POST /check_update`
- **功能**: 检查插件是否有新版本
- **请求体**:
```json
{
"username": "user1" // 用于检查用户所在组的特定版本
}
```
### 2.2 客户端登录
- **URL**: `POST /login`
- **功能**: 客户端专用登录,返回更多用户信息
- **请求体**: 同 Auth 登录
- **响应**:
```json
{
"code": 200,
"message": "success",
"data": {
"token": "eyJ...",
"username": "user1",
"expire_date": "2025-12-31",
"permissions": ["plugin.use"]
}
}
```
---
## 👤 3. 用户资料 (User Profile)
**Base Path**: `/api/v1`
### 3.1 获取资料
- **URL**: `GET /user/profile?username=user1`
- **功能**: 获取用户详细资料积分、VIP 状态、签到信息等)
- **Headers**: `Authorization: Bearer <token>`
### 3.2 更新资料
- **URL**: `PUT /user/profile`
- **功能**: 更新昵称、头像等
- **请求体**:
```json
{
"username": "user1",
"nickname": "New Nickname",
"avatar": "http://example.com/avatar.jpg"
}
```
### 3.3 积分历史
- **URL**: `GET /points/history`
- **功能**: 分页获取积分变动记录
- **Query Params**: `username`, `type` (可选: checkin/consume/reward), `page`, `limit`
---
## 📅 4. 签到模块 (Check-In)
**Base Path**: `/api/v1/checkin`
### 4.1 每日签到
- **URL**: `POST /daily`
- **功能**: 执行每日签到
- **请求体**: `{"username": "user1"}`
- **响应**:
```json
{
"code": 200,
"data": {
"success": true,
"points_earned": 10,
"consecutive_days": 5,
"message": "签到成功..."
}
}
```
### 4.2 签到状态
- **URL**: `GET /status?username=user1`
- **功能**: 检查今日是否已签到
### 4.3 签到日历
- **URL**: `GET /calendar/{year}/{month}`
- **功能**: 获取指定月份的签到日期列表
- **Query Params**: `username`
### 4.4 签到记录 (列表)
- **URL**: `GET /history?username=user1&page=1`
- **功能**: 分页获取签到记录
### 4.5 获取签到规则
- **URL**: `GET /config`
- **功能**: 获取签到奖励规则(公开接口,无需 Admin Token
- **响应**:
```json
{
"code": 200,
"data": [
{
"consecutive_days": 1,
"base_points": 10,
"bonus_points": 0,
"total_points": 10
},
{
"consecutive_days": 7,
"base_points": 10,
"bonus_points": 20,
"total_points": 30
}
]
}
```
---
## 🛠️ 5. 功能使用 (Feature)
**Base Path**: `/api/v1/feature`
### 5.1 使用功能的 (扣费接口)
- **URL**: `POST /use`
- **功能**: 记录功能使用,扣除积分或 VIP 配额
- **请求体**:
```json
{
"username": "user1",
"feature_key": "ai_remove_bg",
"device_id": "device_001"
}
```
- **响应**:
```json
{
"code": 200,
"data": {
"success": true,
"cost_type": "points", // 或 vip_quota, free
"points_cost": 10,
"message": "消耗10积分"
}
}
```
---
## 🧮 6. 工具演示 (JSX Demo)
**Base Path**: `/api/v1/jsx_demo`
### 6.1 计算表达式
- **URL**: `POST /calculate`
- **Headers**: `x-api-key: <optional>`
- **请求体**: `{"expression": "1+1"}`
---
## 📊 7. 统计与日志 (Analytics & Stats)
**Base Path**: `/api/v1`
### 7.1 上报日志
- **URL**: `POST /analytics/log`
- **功能**: 客户端上报行为日志
- **请求体**:
```json
{
"username": "user1",
"device_id": "dev1",
"action": "click_button",
"timestamp": 1234567890
}
```
### 7.2 获取用户统计
- **URL**: `GET /analytics/stats/{username}`
---
## 👑 8. 管理员后台 (Admin)
**Headers**: `x-admin-token: admin-secret-token` (部分接口兼容 Form 表单 token)
### 8.1 基础管理 (Base Path: `/api/v1/admin`)
- `POST /upload_version`: 上传新版本插件包
- `GET /archives`: 列出历史版本
- `POST /groups`: 创建用户组
- `GET /groups`: 获取用户组列表
- `PUT /groups/{id}`: 更新用户组
- `GET /users`: 获取所有用户列表
- `PUT /users/{id}/group`: 修改用户所属组
- `PUT /users/{id}/permissions`: 修改用户权限
### 8.2 配置管理 (Base Path: `/api/v1/admin/config`)
- **功能配置** (`/features`): GET(列表), POST(新增), PUT(/{key} 更新), DELETE(/{key} 删除)
- **VIP 配置** (`/vip`): GET(列表), PUT(/{type} 更新)
- **签到配置** (`/checkin`): GET(列表), POST(新增), PUT(/{days} 更新), DELETE(/{days} 删除)
### 8.3 数据统计 (Base Path: `/api/v1/admin/stats`)
- `GET /today`: 今日概览 (用户数、签到数、功能使用数)
- `GET /feature-usage`: 功能使用排行 (Top 10)
- `GET /points-trend`: 积分收支趋势 (近 7 天)