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

8.8 KiB
Raw Permalink Blame History

在线脚本管理接口文档

一、在线脚本模块概述

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