144 lines
4.2 KiB
Plaintext
144 lines
4.2 KiB
Plaintext
|
---
|
|||
|
description:
|
|||
|
globs:
|
|||
|
alwaysApply: false
|
|||
|
---
|
|||
|
# VWED任务模块 - API接口
|
|||
|
|
|||
|
## API接口概述
|
|||
|
|
|||
|
VWED任务模块使用FastAPI框架实现RESTful API接口,提供任务管理、任务编辑、任务执行、模板管理和脚本管理等功能。
|
|||
|
|
|||
|
## 主要API路由
|
|||
|
|
|||
|
### 任务管理API
|
|||
|
|
|||
|
任务管理API提供任务的基本CRUD操作和执行控制。
|
|||
|
|
|||
|
**相关文件**: [routes/task_api.py](mdc:routes/task_api.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/tasks`: 获取任务列表
|
|||
|
- `GET /api/tasks/{task_id}`: 获取任务详情
|
|||
|
- `POST /api/tasks`: 创建新任务
|
|||
|
- `PUT /api/tasks/{task_id}`: 更新任务信息
|
|||
|
- `DELETE /api/tasks/{task_id}`: 删除任务
|
|||
|
- `POST /api/tasks/{task_id}/execute`: 执行任务
|
|||
|
- `GET /api/tasks/{task_id}/status`: 获取任务执行状态
|
|||
|
- `POST /api/tasks/{task_id}/cancel`: 取消正在执行的任务
|
|||
|
|
|||
|
### 任务编辑API
|
|||
|
|
|||
|
任务编辑API提供任务流程和组件的编辑功能,支持任务的可视化设计。
|
|||
|
|
|||
|
**相关文件**: [routes/task_edit_api.py](mdc:routes/task_edit_api.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/task-edit/{task_id}/blocks`: 获取任务的所有块
|
|||
|
- `POST /api/task-edit/{task_id}/blocks`: 添加新块
|
|||
|
- `PUT /api/task-edit/{task_id}/blocks/{block_id}`: 更新块信息
|
|||
|
- `DELETE /api/task-edit/{task_id}/blocks/{block_id}`: 删除块
|
|||
|
- `POST /api/task-edit/{task_id}/connections`: 创建块之间的连接
|
|||
|
- `DELETE /api/task-edit/{task_id}/connections/{connection_id}`: 删除连接
|
|||
|
- `POST /api/task-edit/{task_id}/validate`: 验证任务流程
|
|||
|
|
|||
|
### 模板管理API
|
|||
|
|
|||
|
模板管理API提供任务模板的管理功能,用户可以基于模板快速创建任务。
|
|||
|
|
|||
|
**相关文件**: [routes/template_api.py](mdc:routes/template_api.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/templates`: 获取模板列表
|
|||
|
- `GET /api/templates/{template_id}`: 获取模板详情
|
|||
|
- `POST /api/templates`: 创建新模板
|
|||
|
- `PUT /api/templates/{template_id}`: 更新模板信息
|
|||
|
- `DELETE /api/templates/{template_id}`: 删除模板
|
|||
|
- `POST /api/templates/{template_id}/create-task`: 基于模板创建任务
|
|||
|
|
|||
|
### 脚本管理API
|
|||
|
|
|||
|
脚本管理API提供自定义脚本的管理功能,支持在任务中执行自定义脚本。
|
|||
|
|
|||
|
**相关文件**: [routes/script_api.py](mdc:routes/script_api.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/scripts`: 获取脚本列表
|
|||
|
- `GET /api/scripts/{script_id}`: 获取脚本详情
|
|||
|
- `POST /api/scripts`: 创建新脚本
|
|||
|
- `PUT /api/scripts/{script_id}`: 更新脚本信息
|
|||
|
- `DELETE /api/scripts/{script_id}`: 删除脚本
|
|||
|
- `POST /api/scripts/{script_id}/test`: 测试执行脚本
|
|||
|
|
|||
|
### 数据库操作API
|
|||
|
|
|||
|
数据库操作API提供直接操作数据库的接口,主要用于调试和管理目的。
|
|||
|
|
|||
|
**相关文件**: [routes/database.py](mdc:routes/database.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/db/tables`: 获取数据库表列表
|
|||
|
- `GET /api/db/tables/{table_name}`: 获取表结构
|
|||
|
- `GET /api/db/execute`: 执行SQL查询
|
|||
|
|
|||
|
### 通用API
|
|||
|
|
|||
|
通用API提供系统级功能,如健康检查、版本信息等。
|
|||
|
|
|||
|
**相关文件**: [routes/common_api.py](mdc:routes/common_api.py)
|
|||
|
|
|||
|
**主要接口**:
|
|||
|
- `GET /api/health`: 系统健康检查
|
|||
|
- `GET /api/version`: 获取系统版本信息
|
|||
|
- `GET /api/components`: 获取预设组件列表
|
|||
|
|
|||
|
## API响应格式
|
|||
|
|
|||
|
所有API接口返回统一的JSON格式:
|
|||
|
|
|||
|
```json
|
|||
|
{
|
|||
|
"code": 200, // 状态码
|
|||
|
"message": "成功", // 状态消息
|
|||
|
"data": { // 响应数据
|
|||
|
// 具体数据内容
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 错误处理
|
|||
|
|
|||
|
系统实现了统一的错误处理机制,将所有异常转换为标准格式的JSON响应:
|
|||
|
|
|||
|
```json
|
|||
|
{
|
|||
|
"code": 400, // 错误状态码
|
|||
|
"message": "参数错误", // 错误消息
|
|||
|
"data": { // 错误详情
|
|||
|
"field": "name",
|
|||
|
"message": "名称不能为空"
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
## 中间件
|
|||
|
|
|||
|
系统实现了多个中间件,提供日志记录、CORS支持和异常处理等功能:
|
|||
|
|
|||
|
```python
|
|||
|
# 添加CORS中间件
|
|||
|
app.add_middleware(
|
|||
|
CORSMiddleware,
|
|||
|
allow_origins=settings.CORS_ORIGINS,
|
|||
|
allow_credentials=settings.CORS_ALLOW_CREDENTIALS,
|
|||
|
allow_methods=settings.CORS_ALLOW_METHODS,
|
|||
|
allow_headers=settings.CORS_ALLOW_HEADERS,
|
|||
|
)
|
|||
|
|
|||
|
# 请求日志中间件
|
|||
|
@app.middleware("http")
|
|||
|
async def log_requests(request: Request, call_next):
|
|||
|
"""记录请求日志的中间件"""
|
|||
|
# 实现细节
|
|||
|
|