58 lines
3.2 KiB
Markdown
58 lines
3.2 KiB
Markdown
# 后端代码与工具说明 (DesignerCEP)
|
||
|
||
本文档详细说明了 `DesignerCEP` 项目的后端服务、测试脚本以及辅助管理工具。
|
||
|
||
---
|
||
|
||
## 1. 自动化发布 (`publish.py`)
|
||
|
||
位于项目根目录 `d:\main\DesignerCEP\publish.py`。
|
||
|
||
- **类型**: Python 脚本。
|
||
- **功能**: 实现 "一键发布" 流程。
|
||
1. **打包**: 自动将 `Designer` 目录压缩为 `.zip` 文件(自动排除 `.git`, `node_modules` 等无关文件)。
|
||
2. **上传**: 调用后端接口 `POST /api/v1/admin/upload_version` 将 ZIP 包上传到服务器。
|
||
3. **鉴权**: 使用 `token` 进行简单的管理员验证。
|
||
- **使用方法**:
|
||
```bash
|
||
python publish.py ./Designer --name "release_v1.0"
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 后端服务 (`Server/`)
|
||
|
||
位于 `d:\main\DesignerCEP\Server\`,基于 Python FastAPI 框架。
|
||
|
||
### 核心文件
|
||
|
||
| 路径/文件名 | 作用 |
|
||
| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **`app/main.py`** | **程序入口**。初始化 FastAPI 应用,配置 CORS(允许跨域),挂载路由,初始化数据库。 |
|
||
| **`app/api/v1/client.py`** | **客户端接口**。处理插件端的请求:<br>- `/check_update`: 检查更新(含过期校验)。<br>- `/login`: 用户登录(返回 Token 和权限)。 |
|
||
| **`app/api/v1/admin.py`** | **管理接口**。供 AdminTool 使用:<br>- `/upload_version`: 接收发布的 ZIP 包。<br>- `/groups`: 管理用户组 (Stable/Dev)。<br>- `/users`: 管理用户及其所属组。 |
|
||
| **`app/models/`** | **数据库模型 (SQLAlchemy)**。定义 `User` 和 `PluginGroup` 表结构。 |
|
||
| **`tests/test_api.py`** | **集成测试**。包含完整的业务流程测试:<br>1. 创建用户组。<br>2. 上传 ZIP 包。<br>3. 将组指向该 ZIP。<br>4. 模拟客户端检查更新,验证返回版本是否正确。<br>5. 验证过期用户是否被拦截。 |
|
||
|
||
---
|
||
|
||
## 3. 管理后台工具 (`AdminTool/`)
|
||
|
||
位于 `d:\main\DesignerCEP\AdminTool\`,基于 PyQt5 的桌面应用程序。
|
||
|
||
- **功能**: 为不熟悉命令行的管理员提供图形化界面。
|
||
- **主要能力**:
|
||
- **用户管理**: 增删改查用户,设置过期时间,分配用户组。
|
||
- **版本管理**: 切换某个组当前使用的插件版本(实现灰度发布或回滚)。
|
||
- **发布管理**: (可选) 集成文件上传功能。
|
||
|
||
---
|
||
|
||
## 总结
|
||
|
||
整个后端生态由这三部分组成闭环:
|
||
|
||
1. **Server**: 提供数据存储和 API 服务。
|
||
2. **publish.py**: 开发者用的“发货工具”。
|
||
3. **AdminTool**: 管理员用的“控制台”。
|