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