Files
DP/tempdocs/后端代码与工具说明.md

58 lines
3.2 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.
# 后端代码与工具说明 (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**: 管理员用的“控制台”。