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