VWED_server/VWED任务模块接口文档/在线脚本管理接口文档.md
2025-04-30 16:57:46 +08:00

396 lines
8.8 KiB
Markdown
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.

# 在线脚本管理接口文档
## 一、在线脚本模块概述
在线脚本模块是配合天风任务模块使用的核心功能允许用户创建、编辑、管理和执行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 | 失败 |