deploy-ease-platform/backend/docs/backend-development-guide.md
戚辰先生 8436ea74d4 1
2024-12-05 14:54:35 +08:00

176 lines
4.2 KiB
Markdown

# 后端开发指南
## 待开发接口清单
### 1. 工作流定义管理 (WorkflowDefinitionApiController)
#### 1.1 更新工作流定义
```typescript
PUT /api/v1/workflow-definitions/{id}
Request: {
// 基本信息
code: string; // 工作流编码
name: string; // 工作流名称
description: string; // 工作流描述
version: number; // 版本号
// 设计数据
design?: {
nodes: [{
id: string;
type: string;
position: { x: number; y: number };
data: {
name: string;
description?: string;
config: Record<string, any>;
}
}];
edges: [{
id: string;
source: string;
target: string;
type: string;
data?: {
condition?: string;
}
}]
}
}
Response: {
code: number;
data: WorkflowDefinitionDTO;
message: string;
}
```
#### 1.2 导入工作流定义(待实现)
```typescript
POST /api/v1/workflow-definitions/import
Request: FormData {
file: File; // JSON格式的工作流定义文件
}
Response: {
code: number;
data: WorkflowDefinitionDTO;
message: string;
}
```
#### 1.3 导出工作流定义(待实现)
```typescript
GET /api/v1/workflow-definitions/{id}/export
Response: File // JSON格式的工作流定义文件
```
### 2. 工作流实例管理 (WorkflowInstanceApiController)
#### 2.1 导出工作流实例
```typescript
GET /api/v1/workflow-instances/export
Query Parameters:
- startTime?: string // 开始时间
- endTime?: string // 结束时间
- status?: string // 实例状态
- keyword?: string // 关键字搜索
Response: File // Excel格式的工作流实例数据
```
### 3. 节点实例管理 (NodeInstanceApiController)
#### 3.1 导出节点实例
```typescript
GET /api/v1/node-instances/export
Query Parameters:
- workflowInstanceId?: string // 工作流实例ID
- nodeType?: string // 节点类型
- status?: string // 节点状态
- startTime?: string // 开始时间
- endTime?: string // 结束时间
Response: File // Excel格式的节点实例数据
```
### 4. 节点类型管理 (NodeTypeApiController)
#### 4.1 导出节点类型
```typescript
GET /api/v1/node-types/export
Query Parameters:
- category?: string // 节点类型分类
- enabled?: boolean // 是否启用
Response: File // Excel格式的节点类型数据
```
### 5. 工作流日志管理 (WorkflowLogApiController)
#### 5.1 导出日志
```typescript
GET /api/v1/workflow-logs/export
Query Parameters:
- workflowInstanceId?: string // 工作流实例ID
- nodeId?: string // 节点ID
- level?: string // 日志级别
- startTime?: string // 开始时间
- endTime?: string // 结束时间
Response: File // Excel格式的日志数据
```
## 开发注意事项
### 1. 工作流设计数据存储
- 工作流设计数据应该存储在 `workflow_definition` 表的 `design_data` 字段中
- 数据格式为JSON字符串
- 需要实现JSON序列化和反序列化
### 2. 数据导出功能
- 使用 Apache POI 处理Excel文件
- 支持大数据量导出
- 添加导出进度提示
- 支持自定义导出字段
### 3. 数据验证
- 工作流设计数据的完整性验证
- 节点连接的有效性验证
- 配置数据的格式验证
### 4. 错误处理
- 添加详细的错误提示
- 记录操作日志
- 支持事务回滚
### 5. 性能优化
- 大数据量导出时使用分页
- 添加必要的索引
- 使用缓存优化查询性能
## 开发优先级建议
1. 工作流设计数据的保存和获取
- 这是工作流设计器的核心功能
- 前端需要这些接口来实现基本功能
2. 工作流设计的验证
- 确保工作流设计的正确性
- 避免错误的工作流定义被发布
3. 工作流定义的导入导出
- 支持工作流定义的迁移
- 方便工作流的备份和恢复
4. 各个模块的数据导出
- 用于数据分析和备份
- 相对优先级较低
## 测试要求
1. 单元测试
- 测试各个Service层的核心方法
- 验证数据处理逻辑的正确性
2. 集成测试
- 测试API接口的功能
- 验证数据库操作的正确性
3. 性能测试
- 测试大数据量导出的性能
- 验证并发处理能力