Apache DolphinScheduler RESTful API完全指南:工作流CRUD操作实战大全

Apache DolphinScheduler RESTful API完全指南:工作流CRUD操作实战大全

【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 【免费下载链接】dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dolp/dolphinscheduler

Apache DolphinScheduler作为现代化的数据编排平台,提供了强大且易用的RESTful API接口,让开发者能够通过编程方式管理数据工作流。本文将详细介绍DolphinScheduler的工作流CRUD操作API,帮助您快速掌握这一强大工具。

🔧 API基础配置与认证

在使用DolphinScheduler RESTful API之前,需要先进行身份认证。系统采用基于Token的认证机制,所有API请求都需要在Header中包含有效的认证Token。

# 获取认证Token示例
curl -X POST "http://localhost:12345/dolphinscheduler/users/login" \
  -H "Content-Type: application/json" \
  -d '{"userName":"admin", "userPassword":"dolphinscheduler123"}'

认证成功后,所有后续请求都需要在Header中包含:

Authorization: Bearer {your_token}

🚀 工作流创建(Create)操作

创建新工作流定义

创建工作流是数据编排的基础,DolphinScheduler提供了完整的创建API:

curl -X POST "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "name=MyWorkflow&description=测试工作流&tenantCode=default&taskRelationJson={relation}&taskDefinitionJson={tasks}"

关键参数说明:

  • projectCode: 项目编码(必填)
  • name: 工作流名称(必填,唯一性验证)
  • description: 工作流描述
  • tenantCode: 租户编码
  • taskRelationJson: 任务关系JSON
  • taskDefinitionJson: 任务定义JSON

批量复制工作流

支持批量复制现有工作流到目标项目:

curl -X POST "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/batch-copy" \
  -H "Authorization: Bearer {token}" \
  -d "codes=1001,1002,1003&targetProjectCode=2001"

🔍 工作流查询(Read)操作

查询工作流详情

通过工作流编码获取详细信息:

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}" \
  -H "Authorization: Bearer {token}"

按名称查询工作流

支持通过名称精确查询工作流:

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/query-by-name?name=MyWorkflow" \
  -H "Authorization: Bearer {token}"

分页查询工作流列表

获取项目下的所有工作流列表(支持分页):

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/list-paging?pageNo=1&pageSize=10" \
  -H "Authorization: Bearer {token}"

查询工作流版本历史

查看工作流的版本变更记录:

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}/versions?pageNo=1&pageSize=5" \
  -H "Authorization: Bearer {token}"

✏️ 工作流更新(Update)操作

更新工作流定义

修改现有工作流的配置信息:

curl -X PUT "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "name=UpdatedWorkflow&description=更新后的工作流&tenantCode=default"

切换工作流版本

回滚或切换到指定版本:

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}/versions/{version}" \
  -H "Authorization: Bearer {token}"

发布/下线工作流

控制工作流的运行状态:

curl -X POST "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}/release" \
  -H "Authorization: Bearer {token}" \
  -d "releaseState=ONLINE"  # 或 OFFLINE

🗑️ 工作流删除(Delete)操作

删除工作流定义

删除指定的工作流:

curl -X DELETE "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}" \
  -H "Authorization: Bearer {token}"

批量删除工作流

支持批量删除多个工作流:

curl -X POST "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/batch-delete" \
  -H "Authorization: Bearer {token}" \
  -d "codes=1001,1002,1003"

删除特定版本

删除工作流的某个历史版本:

curl -X DELETE "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/{code}/versions/{version}" \
  -H "Authorization: Bearer {token}"

📊 高级功能与最佳实践

工作流验证

在创建前验证工作流名称的唯一性:

curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/verify-name?name=MyWorkflow" \
  -H "Authorization: Bearer {token}"

工作流导入导出

支持工作流定义的导入导出功能,便于版本控制和迁移:

# 导出工作流
curl -X GET "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/export" \
  -H "Authorization: Bearer {token}" \
  -d "codes=1001,1002"

# 导入工作流
curl -X POST "http://localhost:12345/dolphinscheduler/projects/{projectCode}/process-definition/import" \
  -H "Authorization: Bearer {token}" \
  -F "file=@workflow_export.json"

🎯 错误处理与状态码

DolphinScheduler API使用标准HTTP状态码:

  • 200: 请求成功
  • 201: 创建成功
  • 400: 请求参数错误
  • 401: 未授权
  • 403: 禁止访问
  • 404: 资源不存在
  • 500: 服务器内部错误

响应格式统一为:

{
  "code": 0,
  "data": {...},
  "msg": "success",
  "success": true
}

💡 实用技巧与建议

  1. 批量操作优化: 对于大量工作流的管理,优先使用批量接口减少请求次数
  2. 版本控制: 重要变更前创建版本快照,便于回滚
  3. 参数验证: 使用验证接口确保名称唯一性,避免创建失败
  4. 监控日志: 关注API响应中的详细错误信息,便于排查问题
  5. 超时设置: 复杂操作适当增加请求超时时间

工作流管理界面

通过本文介绍的RESTful API操作,您可以完全掌控Apache DolphinScheduler的工作流管理,实现自动化的数据编排流程。无论是简单的CRUD操作还是复杂的批量处理,DolphinScheduler都提供了强大而灵活的API支持。

记得在实际使用中参考官方API文档[dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java]获取最新和最详细的信息。Happy coding! 🎉

【免费下载链接】dolphinscheduler Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code 【免费下载链接】dolphinscheduler 项目地址: https://gitcode.com/gh_mirrors/dolp/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值