VWED_server/VWED任务模块接口文档/在线脚本管理接口文档.md

396 lines
8.8 KiB
Markdown
Raw Normal View History

2025-04-30 16:57:46 +08:00
# 在线脚本管理接口文档
## 一、在线脚本模块概述
在线脚本模块是配合天风任务模块使用的核心功能允许用户创建、编辑、管理和执行Python脚本。该模块支持脚本版本控制运行脚本并查看执行日志等功能。
## 二、在线脚本模块接口
### 1. 获取脚本列表
#### 接口描述
获取系统中的脚本列表支持分页、排序和筛选。数据来源是vwed_script表。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-script/list`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| page | Integer | 否 | 页码默认为1 |
| pageSize | Integer | 否 | 每页记录数默认为20 |
| name | String | 否 | 脚本名称,支持模糊查询 |
| status | Integer | 否 | 脚本状态(1:启用, 0:禁用) |
| folderPath | String | 否 | 脚本所在目录路径 |
| tags | String | 否 | 标签,支持模糊查询 |
| isPublic | Integer | 否 | 是否公开(1:是, 0:否) |
| createdBy | String | 否 | 创建者 |
| startTime | String | 否 | 创建时间范围的开始时间格式yyyy-MM-dd HH:mm:ss |
| endTime | String | 否 | 创建时间范围的结束时间格式yyyy-MM-dd HH:mm:ss |
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"total": 15,
"list": [
{
"id": "script-001",
"name": "数据处理脚本",
"folderPath": "/数据处理",
"fileName": "data_processor.py",
"description": "用于处理CSV数据的脚本",
"version": 3,
"status": 1,
"isPublic": 1,
"tags": "数据,CSV,处理",
"createdBy": "admin",
"createdOn": "2025-04-10 09:30:45",
"updatedBy": "admin",
"updatedOn": "2025-04-12 15:20:10"
},
{
"id": "script-002",
"name": "邮件发送脚本",
"folderPath": "/通知",
"fileName": "email_sender.py",
"description": "自动发送邮件通知的脚本",
"version": 1,
"status": 1,
"isPublic": 1,
"tags": "邮件,通知",
"createdBy": "user1",
"createdOn": "2025-04-11 10:15:22",
"updatedBy": "user1",
"updatedOn": "2025-04-11 10:15:22"
}
]
}
}
```
### 2. 获取脚本详情
#### 接口描述
获取指定脚本的详细信息,包括脚本代码内容。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-script/{id}`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| id | String | 是 | 脚本ID路径参数 |
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"id": "script-001",
"name": "数据处理脚本",
"folderPath": "/数据处理",
"fileName": "data_processor.py",
"description": "用于处理CSV数据的脚本",
"code": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\ndef process_data(input_file, output_file):\n # 处理逻辑\n pass\n\nif __name__ == '__main__':\n process_data('input.csv', 'output.csv')",
"version": 3,
"status": 1,
"isPublic": 1,
"tags": "数据,CSV,处理",
"createdBy": "admin",
"createdOn": "2025-04-10 09:30:45",
"updatedBy": "admin",
"updatedOn": "2025-04-12 15:20:10",
"testParams": "{\"input_file\": \"test.csv\", \"output_file\": \"result.csv\"}"
}
}
```
### 3. 创建脚本
#### 接口描述
创建一个新的脚本。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-script`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| folderPath | String | 否 | 脚本所在目录路径 |
| fileName | String | 是 | 脚本文件名,必须以.py结尾 |
#### 请求示例
```json
{
"folderPath": "/数据处理",
"fileName": "data_processor.py",
}
```
#### 响应参数
```json
{
"code": 200,
"message": "创建成功",
"data": {
"id": "script-001"
}
}
```
### 4. 更新脚本
#### 接口描述
更新现有脚本的信息,包括代码内容。每次更新会自动生成新的版本记录。
#### 请求方式
- **HTTP方法**: PUT
- **接口路径**: `/api/vwed-script/{id}`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| id | String | 是 | 脚本ID路径参数 |
| folderPath | String | 是 | 脚本所在目录路径 |
| fileName | String | 是 | 脚本文件名,必须以.py结尾 |
| code | String | 是 | 脚本代码内容 |
#### 请求示例
```json
{
"code": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\ndef process_data(input_file, output_file):\n # 更新的处理逻辑\n with open(input_file, 'r') as f_in:\n data = f_in.read()\n \n # 处理数据\n processed_data = data.upper()\n \n with open(output_file, 'w') as f_out:\n f_out.write(processed_data)\n\nif __name__ == '__main__':\n process_data('input.csv', 'output.csv')",
"changeLog": "增加了文件读写功能"
}
```
#### 响应参数
```json
{
"code": 200,
"message": "更新成功",
"data": {
"version": 4
}
}
```
### 5. 删除脚本
#### 接口描述
删除指定的脚本,同时删除所有相关的版本记录。
#### 请求方式
- **HTTP方法**: DELETE
- **接口路径**: `/api/vwed-script/{id}`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| id | String | 是 | 脚本ID路径参数 |
#### 响应参数
```json
{
"code": 200,
"message": "删除成功",
"data": null
}
```
### 6. 运行脚本
#### 接口描述
执行指定的脚本,并返回执行结果。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-script/{id}/run`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| id | String | 是 | 脚本ID路径参数 |
#### 请求示例
```json
{
"id": "task-001",
}
```
#### 响应参数
```json
{
"code": 200,
"message": "执行成功",
"data": {
"logId": "log-001",
"result": {
"status": "success",
"output": {
"processed_rows": 100,
"duration": 0.25
}
},
"executionTime": 250
}
}
```
### 7. 停止脚本执行
#### 接口描述
停止正在执行的脚本。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-script/stop`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| logId | String | 是 | 脚本执行日志ID |
#### 请求示例
```json
{
"logId": "log-001"
}
```
#### 响应参数
```json
{
"code": 200,
"message": "已停止执行",
"data": null
}
```
### 12. 获取脚本执行日志详情
#### 接口描述
获取特定脚本执行日志的详细信息。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-script/log/{logId}`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| logId | String | 是 | 脚本执行日志ID路径参数 |
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"id": "log-003",
"scriptId": "script-001",
"scriptName": "数据处理脚本",
"version": 3,
"taskRecordId": "task-001",
"blockRecordId": "block-001",
"inputParams": "{\"input_file\":\"data.csv\",\"output_file\":\"result.csv\"}",
"outputResult": "{\"status\":\"success\",\"processed_rows\":100,\"duration\":0.25}",
"status": 1,
"errorMessage": null,
"executionTime": 250,
"startedOn": "2025-04-12 16:10:45",
"endedOn": "2025-04-12 16:10:45",
"code": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\ndef process_data(input_file, output_file):\n # 版本3的处理逻辑\n pass\n\nif __name__ == '__main__':\n process_data('input.csv', 'output.csv')"
}
}
```
### 13. 导出脚本
#### 接口描述
导出指定脚本的代码文件。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-script/{id}/export`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| id | String | 是 | 脚本ID路径参数 |
#### 响应参数
返回脚本文件的二进制内容Content-Type为application/octet-stream或text/plain。
### 14. 导入脚本
#### 接口描述
从Python文件导入脚本。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-script/import`
- **Content-Type**: multipart/form-data
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| file | File | 是 | 要导入的Python脚本文件 |
#### 响应参数
```json
{
"code": 200,
"message": "导入成功",
"data": {
"id": "script-010"
}
}
```
## 三、数据结构
### 1. 脚本状态
| 状态码 | 描述 |
|-------|------|
| 1 | 启用 |
| 0 | 禁用 |
### 2. 脚本执行状态
| 状态码 | 描述 |
|-------|------|
| 1 | 成功 |
| 0 | 失败 |