8.8 KiB
8.8 KiB
在线脚本管理接口文档
一、在线脚本模块概述
在线脚本模块是配合天风任务模块使用的核心功能,允许用户创建、编辑、管理和执行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 |
响应参数
{
"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,路径参数 |
响应参数
{
"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结尾 |
请求示例
{
"folderPath": "/数据处理",
"fileName": "data_processor.py",
}
响应参数
{
"code": 200,
"message": "创建成功",
"data": {
"id": "script-001"
}
}
4. 更新脚本
接口描述
更新现有脚本的信息,包括代码内容。每次更新会自动生成新的版本记录。
请求方式
- HTTP方法: PUT
- 接口路径:
/api/vwed-script/{id}
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
id | String | 是 | 脚本ID,路径参数 |
folderPath | String | 是 | 脚本所在目录路径 |
fileName | String | 是 | 脚本文件名,必须以.py结尾 |
code | String | 是 | 脚本代码内容 |
请求示例
{
"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": "增加了文件读写功能"
}
响应参数
{
"code": 200,
"message": "更新成功",
"data": {
"version": 4
}
}
5. 删除脚本
接口描述
删除指定的脚本,同时删除所有相关的版本记录。
请求方式
- HTTP方法: DELETE
- 接口路径:
/api/vwed-script/{id}
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
id | String | 是 | 脚本ID,路径参数 |
响应参数
{
"code": 200,
"message": "删除成功",
"data": null
}
6. 运行脚本
接口描述
执行指定的脚本,并返回执行结果。
请求方式
- HTTP方法: POST
- 接口路径:
/api/vwed-script/{id}/run
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
id | String | 是 | 脚本ID,路径参数 |
请求示例
{
"id": "task-001",
}
响应参数
{
"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 |
请求示例
{
"logId": "log-001"
}
响应参数
{
"code": 200,
"message": "已停止执行",
"data": null
}
12. 获取脚本执行日志详情
接口描述
获取特定脚本执行日志的详细信息。
请求方式
- HTTP方法: GET
- 接口路径:
/api/vwed-script/log/{logId}
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
logId | String | 是 | 脚本执行日志ID,路径参数 |
响应参数
{
"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脚本文件 |
响应参数
{
"code": 200,
"message": "导入成功",
"data": {
"id": "script-010"
}
}
三、数据结构
1. 脚本状态
状态码 | 描述 |
---|---|
1 | 启用 |
0 | 禁用 |
2. 脚本执行状态
状态码 | 描述 |
---|---|
1 | 成功 |
0 | 失败 |