VWED_server/.cursor/rules/api-routes.mdc
2025-04-30 16:57:46 +08:00

144 lines
4.2 KiB
Plaintext
Raw Permalink 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.

---
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):
"""记录请求日志的中间件"""
# 实现细节