Initial commit - DesignerCEP Project with Caddy deployment
This commit is contained in:
160
tempdocs/后端API接口文档.md
Normal file
160
tempdocs/后端API接口文档.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# DesignerCEP 后端 API 接口文档
|
||||
|
||||
本文档描述了 DesignerCEP 后端服务的 API 接口规范,包括客户端插件接口和后台管理接口。
|
||||
|
||||
## 1. 基础信息
|
||||
|
||||
- **Base URL**: `http://localhost:8000/api/v1`
|
||||
- **文件下载 Base URL**: `http://localhost:8000/download/`
|
||||
- **鉴权方式**:
|
||||
- **Client**: Bearer Token (JWT)
|
||||
- **Admin**: 简单 Token (Header `x-admin-token` 或 Form `token`) - *开发阶段*
|
||||
|
||||
## 2. 客户端接口 (Client)
|
||||
|
||||
用于 Photoshop 插件端的交互。
|
||||
|
||||
### 2.1 登录 (Login)
|
||||
|
||||
客户端登录,获取 Token、权限及过期时间。
|
||||
|
||||
- **URL**: `/client/login`
|
||||
- **Method**: `POST`
|
||||
- **Request Body**:
|
||||
```json
|
||||
{
|
||||
"username": "user1",
|
||||
"password": "password123",
|
||||
"device_id": "unique-device-id"
|
||||
}
|
||||
```
|
||||
- **Response**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"data": {
|
||||
"token": "eyJhbGciOiJIUzI1...",
|
||||
"username": "user1",
|
||||
"expire_date": "2025-12-31",
|
||||
"permissions": ["batch_process", "export"]
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 检查更新 (Check Update)
|
||||
|
||||
根据用户所在组检查是否有新版本。
|
||||
|
||||
- **URL**: `/client/check_update`
|
||||
- **Method**: `POST`
|
||||
- **Request Body**:
|
||||
```json
|
||||
{
|
||||
"username": "user1"
|
||||
}
|
||||
```
|
||||
- **Response**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"data": {
|
||||
"version": "v1.0",
|
||||
"download_url": "/download/plugin_v1.0.zip",
|
||||
"force_update": false,
|
||||
"is_expired": false
|
||||
},
|
||||
"message": "success"
|
||||
}
|
||||
```
|
||||
- `is_expired`: 若为 `true`,表示用户授权已过期,客户端应限制功能。
|
||||
- `download_url`: 拼接 Base URL 使用。
|
||||
|
||||
---
|
||||
|
||||
## 3. 管理端接口 (Admin)
|
||||
|
||||
用于发布系统管理(CI/CD 或管理后台)。需在 Header 中携带 `x-admin-token: admin-secret-token` (默认开发Token)。
|
||||
|
||||
### 3.1 上传版本文件 (Upload Version)
|
||||
|
||||
上传插件 ZIP 包到服务器。
|
||||
|
||||
- **URL**: `/admin/upload_version`
|
||||
- **Method**: `POST`
|
||||
- **Content-Type**: `multipart/form-data`
|
||||
- **Form Data**:
|
||||
- `file`: (Binary Zip File)
|
||||
- `token`: "admin-secret-token" (作为 Form 字段兼容脚本)
|
||||
- **Response**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "File 'plugin_v1.0.zip' uploaded successfully",
|
||||
"filename": "plugin_v1.0.zip"
|
||||
}
|
||||
```
|
||||
|
||||
### 3.2 创建用户组 (Create Group)
|
||||
|
||||
- **URL**: `/admin/groups`
|
||||
- **Method**: `POST`
|
||||
- **Request Body**:
|
||||
```json
|
||||
{
|
||||
"name": "Dev Group",
|
||||
"current_version_file": "plugin_v1.0_beta.zip",
|
||||
"comment": "开发测试组"
|
||||
}
|
||||
```
|
||||
- **Response**: 返回创建的组对象。
|
||||
|
||||
### 3.3 更新用户组 (Update Group)
|
||||
|
||||
用于切换组的版本。
|
||||
|
||||
- **URL**: `/admin/groups/{group_id}`
|
||||
- **Method**: `PUT`
|
||||
- **Request Body**:
|
||||
```json
|
||||
{
|
||||
"current_version_file": "plugin_v1.1_stable.zip"
|
||||
}
|
||||
```
|
||||
|
||||
### 3.4 获取所有组 (List Groups)
|
||||
|
||||
- **URL**: `/admin/groups`
|
||||
- **Method**: `GET`
|
||||
- **Response**: 组列表数组。
|
||||
|
||||
### 3.5 修改用户所属组 (Update User Group)
|
||||
|
||||
- **URL**: `/admin/users/{user_id}/group`
|
||||
- **Method**: `PUT`
|
||||
- **Query Params**:
|
||||
- `group_id`: 目标组 ID
|
||||
- **Response**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "User group updated"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 数据库模型说明
|
||||
|
||||
### PluginGroup (用户组)
|
||||
- `id`: ID
|
||||
- `name`: 组名 (Unique)
|
||||
- `current_version_file`: 当前关联的 ZIP 文件名
|
||||
- `comment`: 备注
|
||||
|
||||
### User (用户)
|
||||
- `id`: ID
|
||||
- `username`: 用户名
|
||||
- `group_id`: 所属组 ID (Foreign Key)
|
||||
- `permissions`: 权限列表 (逗号分隔字符串)
|
||||
- `expire_date`: 过期时间
|
||||
Reference in New Issue
Block a user