Apache DolphinScheduler RESTful API完全指南:工作流CRUD操作实战大全
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: 任务关系JSONtaskDefinitionJson: 任务定义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
}
💡 实用技巧与建议
- 批量操作优化: 对于大量工作流的管理,优先使用批量接口减少请求次数
- 版本控制: 重要变更前创建版本快照,便于回滚
- 参数验证: 使用验证接口确保名称唯一性,避免创建失败
- 监控日志: 关注API响应中的详细错误信息,便于排查问题
- 超时设置: 复杂操作适当增加请求超时时间
通过本文介绍的RESTful API操作,您可以完全掌控Apache DolphinScheduler的工作流管理,实现自动化的数据编排流程。无论是简单的CRUD操作还是复杂的批量处理,DolphinScheduler都提供了强大而灵活的API支持。
记得在实际使用中参考官方API文档[dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ProcessDefinitionController.java]获取最新和最详细的信息。Happy coding! 🎉
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



