Wexflow REST API深度解析:如何通过API管理所有工作流

📅 2026/7/5 18:24:59
Wexflow REST API深度解析:如何通过API管理所有工作流
Wexflow REST API深度解析如何通过API管理所有工作流【免费下载链接】wexflowWorkflow Automation Engine项目地址: https://gitcode.com/gh_mirrors/we/wexflowWexflow是一个功能强大的工作流自动化引擎其REST API提供了完整的程序化访问能力让开发者能够通过代码全面管理所有工作流。本文将深入解析Wexflow REST API的核心功能和使用方法帮助您快速掌握通过API自动化管理工作流的技巧。Wexflow REST API概述Wexflow的REST API是一个基于HTTP的完整接口运行在默认端口8000上为开发者提供了对工作流引擎的全面控制能力。通过API您可以实现工作流的创建、启动、监控、暂停、恢复和删除等所有操作完全无需手动操作Web界面。Wexflow的API设计遵循RESTful原则使用标准的HTTP方法GET、POST、PUT、DELETE和JSON格式进行数据交换。所有API请求都需要通过JWT令牌进行身份验证确保系统安全。核心API端点详解 身份验证APIWexflow使用基于JWT的认证机制。首先需要通过登录API获取访问令牌POST /api/v1/login Content-Type: application/json { username: admin, password: wexflow2018, stayConnected: false }成功登录后服务器会返回一个JWT令牌后续所有API请求都需要在Authorization头中携带此令牌。 工作流管理API1. 获取工作流列表GET /api/v1/search?s关键词page1pageSize10 Authorization: Bearer token这个API支持分页和关键词搜索返回所有工作流的详细信息包括状态、创建时间、最后修改时间等。2. 获取特定工作流详情GET /api/v1/workflow?w工作流ID Authorization: Bearer token3. 启动工作流POST /api/v1/start?w工作流ID Authorization: Bearer token启动工作流时可以传递变量POST /api/v1/start-vars Content-Type: application/json Authorization: Bearer token { workflowId: 1, variables: { inputFile: /path/to/file.txt, outputFormat: json } }4. 停止工作流POST /api/v1/stop?w工作流IDi实例ID Authorization: Bearer token5. 暂停与恢复工作流POST /api/v1/suspend?w工作流IDi实例ID POST /api/v1/resume?w工作流IDi实例ID 监控与统计API1. 获取状态统计GET /api/v1/status-count Authorization: Bearer token返回各种状态的工作流数量统计包括运行中、已完成、失败、挂起等状态。2. 获取执行历史GET /api/v1/search-history-entries-by-page-order-by Authorization: Bearer token支持按时间范围、状态等条件筛选历史执行记录。3. 实时状态更新Server-Sent EventsGET /api/v1/sse/{workflowId}/{jobId}Wexflow支持SSEServer-Sent Events允许客户端实时接收工作流状态更新无需轮询。️ 工作流设计API1. 获取工作流XML定义GET /api/v1/xml/{工作流ID} Authorization: Bearer token返回工作流的XML定义这是Wexflow工作流的原生格式。2. 保存工作流POST /api/v1/save-workflow Content-Type: application/json Authorization: Bearer token { xml: Workflow.../Workflow }3. 验证工作流XMLPOST /api/v1/is-xml-workflow-valid Content-Type: application/json Authorization: Bearer token { xml: Workflow.../Workflow } 用户与权限管理API1. 用户管理GET /api/v1/search-users POST /api/v1/insert-user PUT /api/v1/update-user DELETE /api/v1/delete-user2. 工作流权限分配GET /api/v1/get-user-workflows?userId用户ID POST /api/v1/save-user-workflows Content-Type: application/json { userId: 用户ID, workflowIds: [1, 2, 3] }实际应用场景示例场景1自动化部署流水线假设您需要自动化部署流程可以通过Wexflow API实现import requests # 1. 登录获取令牌 response requests.post( http://localhost:8000/api/v1/login, json{username: admin, password: wexflow2018} ) token response.json()[access_token] headers {Authorization: fBearer {token}} # 2. 启动部署工作流 deploy_response requests.post( http://localhost:8000/api/v1/start-vars, headersheaders, json{ workflowId: 101, variables: { sourcePath: /build/artifact, targetServer: production, backupEnabled: true } } ) # 3. 监控执行状态 status_response requests.get( http://localhost:8000/api/v1/status-count, headersheaders )场景2批量数据处理对于需要处理大量文件的场景// 批量启动图片处理工作流 async function batchProcessImages(imageFiles) { const token await login(); for (const imageFile of imageFiles) { await startWorkflow(42, { inputImage: imageFile.path, outputFormat: webp, quality: 85 }); // 等待处理完成 await waitForCompletion(42); } }场景3系统监控与告警#!/bin/bash # 监控工作流状态并发送告警 TOKEN$(curl -s -X POST http://localhost:8000/api/v1/login \ -H Content-Type: application/json \ -d {username:admin,password:wexflow2018} | jq -r .access_token) # 获取失败的工作流 FAILED_COUNT$(curl -s -H Authorization: Bearer $TOKEN \ http://localhost:8000/api/v1/status-count | jq .failed) if [ $FAILED_COUNT -gt 0 ]; then # 发送告警 curl -X POST http://localhost:8000/api/v1/notify \ -H Authorization: Bearer $TOKEN \ -H Content-Type: application/json \ -d { message: 有工作流执行失败请立即检查, type: error } fiAPI最佳实践与性能优化1. 连接管理使用连接池减少连接建立开销合理设置超时时间实现重试机制处理网络波动2. 认证优化缓存JWT令牌避免频繁登录实现令牌自动刷新机制使用环境变量存储敏感信息3. 错误处理def call_wexflow_api(endpoint, dataNone): try: response requests.post( fhttp://localhost:8000/api/v1/{endpoint}, headersheaders, jsondata, timeout30 ) response.raise_for_status() return response.json() except requests.exceptions.Timeout: logger.error(API请求超时) return None except requests.exceptions.RequestException as e: logger.error(fAPI请求失败: {e}) return None4. 批量操作优化对于需要批量启动多个工作流的场景建议使用异步调用避免阻塞控制并发数量避免系统过载实现队列机制处理大量请求安全注意事项1. 访问控制为不同用户分配最小必要权限定期审计API访问日志实现IP白名单限制2. 数据传输安全在生产环境启用HTTPS使用强密码策略定期轮换JWT密钥3. 输入验证// 验证工作流ID function validateWorkflowId(id) { if (!Number.isInteger(id) || id 0) { throw new Error(无效的工作流ID); } return true; } // 验证变量参数 function validateVariables(vars) { if (typeof vars ! object || vars null) { throw new Error(变量必须是对象类型); } return true; }故障排查与调试常见问题解决方案认证失败检查用户名密码是否正确验证JWT令牌是否过期确认用户有相应权限工作流启动失败检查工作流ID是否存在验证输入变量格式查看服务器日志获取详细错误信息性能问题监控API响应时间优化数据库查询考虑使用缓存机制调试工具推荐使用curl测试API# 测试登录API curl -X POST http://localhost:8000/api/v1/login \ -H Content-Type: application/json \ -d {username:admin,password:wexflow2018} # 测试工作流列表API curl -H Authorization: Bearer token \ http://localhost:8000/api/v1/search使用Postman或Insomnia创建API测试集合设置环境变量自动化测试脚本高级功能与扩展1. 自定义Webhook集成Wexflow API可以轻松集成到现有系统中class WexflowWebhookHandler: def __init__(self, api_url, token): self.api_url api_url self.headers {Authorization: fBearer {token}} def handle_webhook(self, event_type, data): 处理外部系统的Webhook事件 if event_type file_uploaded: # 启动文件处理工作流 self.start_workflow(201, { filePath: data[file_path], processType: data[process_type] }) elif event_type data_updated: # 触发数据同步工作流 self.start_workflow(202, { source: data[source], target: data[target] })2. 工作流编排通过API可以实现复杂的工作流编排// 编排多个工作流执行 async function orchestrateWorkflows() { // 步骤1数据提取 const extractJobId await startWorkflow(101, { source: database, query: SELECT * FROM data }); // 步骤2数据处理等待步骤1完成 await waitForWorkflowCompletion(101, extractJobId); const processJobId await startWorkflow(102, { inputFile: /output/extracted.csv, processRules: clean,transform,validate }); // 步骤3结果导出 await waitForWorkflowCompletion(102, processJobId); await startWorkflow(103, { processedFile: /output/processed.csv, exportFormat: json }); }3. 监控仪表板集成将Wexflow监控数据集成到现有仪表板// 实时监控面板 class WexflowDashboard { private statusCountInterval: NodeJS.Timeout; startRealTimeMonitoring() { // 每30秒更新一次状态 this.statusCountInterval setInterval(async () { const status await this.getStatusCount(); this.updateDashboard(status); }, 30000); } async getStatusCount() { const response await fetch( ${this.apiBaseUrl}/status-count, { headers: this.headers } ); return response.json(); } }总结Wexflow REST API提供了强大而灵活的工作流管理能力通过标准化的HTTP接口您可以轻松地将工作流自动化集成到任何系统中。无论是简单的文件处理任务还是复杂的业务流程编排Wexflow API都能满足您的需求。关键要点总结全面覆盖API覆盖了工作流生命周期的所有操作易于集成基于REST标准支持各种编程语言实时监控支持SSE实时状态更新安全可靠基于JWT的身份验证和细粒度权限控制扩展性强支持自定义变量和Webhook集成通过合理利用Wexflow REST API您可以构建出高效、可靠的工作流自动化系统大幅提升业务处理效率。无论是开发人员还是系统管理员掌握Wexflow API都将为您的工作带来极大的便利。立即开始使用Wexflow API让您的工作流管理更加智能高效【免费下载链接】wexflowWorkflow Automation Engine项目地址: https://gitcode.com/gh_mirrors/we/wexflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考