DolphinScheduler API 集成实战指南:从令牌认证到工作流全生命周期管理
DolphinScheduler API 集成实战指南从令牌认证到工作流全生命周期管理【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler如果你正在搭建自动化数据平台想让外部系统数据中台、监控告警、CI/CD 流水线与调度引擎联动而不是在页面上一次次手工点击那么 DolphinScheduler API 就是你需要的遥控器。Apache DolphinScheduler 是新一代数据编排平台支持用低代码方式编排高吞吐的工作流而它提供的 RESTful API 覆盖了项目、工作流、任务、实例、数据源与权限管理的全部能力。本文将沿着一条从零创建每日数据汇总工作流的主线带你完整走通 DolphinScheduler API 接口调用的每一步从令牌认证到实例监控全程配真实可用的请求示例。一、为什么你需要 API 而不是鼠标点击很多团队在使用 DolphinScheduler 时工作流都是靠 UI 手动配置的。一旦规模上来痛点就非常明显重复劳动几十个项目、上百条工作流靠手工创建既慢又容易出错难以自动化发布流水线无法自动部署工作流版本难以追踪无法联动外部系统如数据治理平台无法按需触发或查询调度状态。用 API 调用的方式上述问题可以一并解决。下表对比了两种方式的差异对比维度页面操作API 调用创建项目/工作流逐条手工配置脚本批量创建与第三方系统集成不支持通过 token 鉴权直连触发与状态查询依赖人工盯页面定时轮询或回调可审计性无请求留痕、审计日志DolphinScheduler 的 API 控制器代码集中在dolphinscheduler-api模块官方 Swagger 文档会随服务启动自动生成方便随时查阅全部接口定义。二、动手前的三项准备2.1 环境搭建拿到一个可用的服务最简单的方式是使用源码自带的 Docker Compose 一键起服务git clone https://gitcode.com/GitHub_Trending/dol/dolphinscheduler cd dolphinscheduler docker compose -f deploy/docker/docker-compose.yml up -d服务启动后API Server 默认监听12345端口前端页面地址为http://localhost:12345/dolphinscheduler/ui。首次登录使用默认账号admin/dolphinscheduler123。2.2 令牌认证给 API 配一把钥匙DolphinScheduler API 支持 Token、SessionCookie与 Basic 三种认证方式其中Token 认证最适合脚本和第三方集成。官方文档路径docs/docs/zh/guide/api/open-api.md。获取 Token 的步骤登录控制台进入安全中心 → 令牌管理点击令牌管理创建令牌选择失效时间并指定操作人用户生成后拷贝 Token 字符串并提交。之后所有 API 请求在 Header 中携带token即可token: 上一步生成的Token字符串 Accept: application/json2.3 认识你的接口字典Swagger 文档服务启动后直接打开 Swagger 页面即可浏览全部 DolphinScheduler API 接口http://{api server ip}:12345/dolphinscheduler/swagger-ui/index.html?languagezh_CNlangcn页面左侧按功能模块access token、alert group、process definition 等分组右侧列出每个接口的 HTTP 方法、路径与参数说明。后续所有接口路径均以这里为准。三、主线实战用 API 搭建每日数据汇总工作流这一节是全篇主线。我们将用纯 API 调用完成创建项目 → 创建工作流 → 上线发布 → 触发执行 → 查询状态五个步骤跑通一条完整链路。第一步创建项目curl -X POST http://localhost:12345/dolphinscheduler/projects \ -H Content-Type: application/json \ -H token: YOUR_TOKEN \ -d { projectName: daily-report, description: 每日数据汇总项目 }响应中的code为0即代表成功{ code: 0, msg: success, data: { code: 123456789, name: daily-report, description: 每日数据汇总项目 } }在 Postman 中的完整效果如下返回200 OK与msg: success即表示创建成功请记录返回的data.code它就是后续所有接口都要用到的projectCode。第二步创建工作流定义工作流定义是整个编排的核心一个定义内可以包含多个任务节点并通过preTasks声明依赖关系。创建接口为curl -X POST http://localhost:12345/dolphinscheduler/projects/{projectCode}/workflow-definition \ -H Content-Type: application/json \ -H token: YOUR_TOKEN \ -d { name: daily_summary, description: 每日数据汇总流程, globalParams: [{\prop\:\bizDate\,\value\:\${system.datetime}\}], locations: {\数据抽取\:{\x\:100,\y\:100}}, tasks: [ { name: 数据抽取, taskType: SQL, params: { type: MYSQL, datasource: 1, sql: SELECT * FROM orders WHERE dt ${bizDate} } }, { name: 数据汇总, taskType: SHELL, params: { rawScript: python3 /opt/summary.py ${bizDate} }, preTasks: [数据抽取] } ] }对应源码在 dolphinscheduler-api/.../WorkflowDefinitionController.java其RequestMapping(projects/{projectCode}/workflow-definition)下注册了创建、复制、发布、版本管理等整套子接口。第三步上线发布刚创建的工作流处于下线状态需要先发布才能被调度。调用发布接口curl -X POST http://localhost:12345/dolphinscheduler/projects/{projectCode}/workflow-definition/{code}/release \ -H Content-Type: application/json \ -H token: YOUR_TOKEN \ -d {releaseState: ONLINE}第四步触发执行发布后通过 Executor 控制器立即触发一次运行接口路径为projects/{projectCode}/executors/start-workflow-instancecurl -X POST http://localhost:12345/dolphinscheduler/projects/{projectCode}/executors/start-workflow-instance \ -H Content-Type: application/json \ -H token: YOUR_TOKEN \ -d { workflowDefinitionCode: 987654321, failureStrategy: CONTINUE, warningType: NONE, warningGroupId: , execType: START_PROCESS, runMode: RUN_MODE_SERIAL, processInstancePriority: MEDIUM, workerGroup: default, version: 1 }第五步查询实例状态执行后可以轮询实例列表确认运行结果curl -X GET http://localhost:12345/dolphinscheduler/projects/{projectCode}/workflow-instances?pageNo1pageSize10 \ -H token: YOUR_TOKEN实例状态字段如RUNNING_EXECUTION、SUCCESS、FAILURE可在控制台首页的统计面板中直观核对至此一条建项目 → 建流程 → 发布 → 触发 → 监控的完整闭环已经用纯 API 跑通。四、核心接口模块速查表围绕主线案例把最常用的接口按模块整理如下方便日常开发时快速查阅。4.1 认证与会话方法路径用途POST/login用户名密码登录换取 SessionPOST/signOut注销会话相关/access-tokensToken 的创建、查询、删除登录接口示例curl -X POST http://localhost:12345/dolphinscheduler/login \ -H Content-Type: application/json \ -d {userName:admin,userPassword:dolphinscheduler123}4.2 项目方法路径用途POST/projects创建项目GET/projects分页查询项目列表GET/projects/{code}查询项目详情PUT/projects/{code}更新项目DELETE/projects/{code}删除项目GET/projects/list查询所有项目无分页查询项目列表curl -X GET http://localhost:12345/dolphinscheduler/projects/list -H token: YOUR_TOKEN用 Postman 发送该请求响应会返回项目列表与 Swagger 中的接口描述一一对应4.3 工作流定义与任务定义模块方法路径用途工作流POST/projects/{projectCode}/workflow-definition创建工作流工作流GET/projects/{projectCode}/workflow-definition分页查询工作流PUT/projects/{projectCode}/workflow-definition/{code}更新定义工作流POST/projects/{projectCode}/workflow-definition/{code}/release上线/下线工作流GET/projects/{projectCode}/workflow-definition/{code}/versions版本列表工作流DELETE/projects/{projectCode}/workflow-definition/{code}删除定义任务GET/projects/{projectCode}/workflow-definition/{code}/tasks查询定义内任务任务GET/projects/{projectCode}/task-definition查询任务定义列表4.4 工作流实例与任务实例方法路径用途GET/projects/{projectCode}/workflow-instances分页查询实例GET/projects/{projectCode}/workflow-instances/{id}实例详情GET/projects/{projectCode}/workflow-instances/{id}/tasks实例下的任务列表GET/projects/{projectCode}/workflow-instances/{id}/view-gantt甘特图数据GET/projects/{projectCode}/task-instances分页查询任务实例POST/projects/{projectCode}/executors/execute对实例执行重跑/暂停等操作4.5 数据源、用户与监控模块方法路径用途数据源POST/datasources创建数据源数据源GET/datasources分页查询数据源POST/datasources/connect测试连接用户POST/users创建用户用户POST/users/{id}/grant-project授权项目监控GET/projects/analysis/task-state-count任务状态统计监控GET/monitor/servers服务节点监控数据源 API 覆盖 MySQL、PostgreSQL、Hive、Spark、ClickHouse、Doris、StarRocks 等二十余种类型创建时通过type字段指定即可。五、响应规范与错误码避坑所有 DolphinScheduler API 接口统一返回如下结构的 JSON{ code: 0, msg: success, data: {} }code 0成功code ! 0失败msg中附带可读的错误描述。code的定义集中在dolphinscheduler-api模块的Status枚举中常用值如下code含义处理建议0成功正常处理10000服务端异常查看服务端日志10001请求参数无效核对参数名与格式10013用户名或密码错误检查登录凭据10016数据源连接失败检查数据源地址与账号10018项目不存在确认 projectCode 是否正确10019项目已存在先查询再决定是否创建完整枚举可见源码 dolphinscheduler-api/.../enums/Status.java。六、进阶技巧与高频坑位6.1 用脚本批量创建任务避免逐个请求import requests BASE http://localhost:12345/dolphinscheduler HEADERS {token: YOUR_TOKEN, Content-Type: application/json} def create_project(name, desc): resp requests.post(f{BASE}/projects, json{ projectName: name, description: desc }, headersHEADERS) resp.raise_for_status() return resp.json()[data][code] # 批量创建多个项目 for item in [(report_a, 报表A), (report_b, 报表B)]: print(create_project(*item))注意控制请求频率大批量操作建议加入短暂间隔如time.sleep(0.1)避免打满 API Server 线程池。6.2 高可用架构下的调用要点在集群部署Master Worker API 多节点环境下API 是无状态的前端任意节点均可处理请求可通过负载均衡暴露统一入口。调度与容错细节可参考项目架构文档 docs/docs/zh/architecture 下的设计说明。6.3 常见坑位排查清单现象大概率原因解决办法返回 10013token 无效或已过期重新生成 token检查失效时间返回 10001Content-Type 未设置为 application/json请求头补齐Accept与Content-Type返回 10018projectCode 传成了字符串名称使用创建项目时返回的数字 code创建任务失败preTasks引用了不存在的任务名先创建前置任务再声明依赖触发执行无响应工作流未上线或版本号不符先调用 release 接口上线核对 version七、收尾让调度平台真正成为可编程的基础设施本文通过创建项目 → 定义工作流 → 发布 → 触发 → 监控这条主线完整覆盖了 DolphinScheduler API 接口调用的核心路径令牌认证、常用接口速查、统一响应规范与错误码、批量脚本与避坑清单。如果你已经掌握了这些内容下一步建议打开 Swagger 文档逐个试调本项目中尚未用到的接口为你的团队封装一套 Python/Java 的 API Client统一鉴权与错误处理将工作流的创建与发布接入 CI/CD实现代码即调度。DolphinScheduler API 的价值不在于接口数量多而在于它能帮你把调度能力从页面下沉到代码让整个数据平台真正自动化运转起来。【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

免费开源的抖音TikTok数据采集下载工具,跟着一条分享链接走一遍就会用(保姆级入门)

免费开源的抖音TikTok数据采集下载工具,跟着一条分享链接走一遍就会用(保姆级入门)

免费开源的抖音TikTok数据采集下载工具,跟着一条分享链接走一遍就会用(保姆级入门) 【免费下载链接】TikTokDownloader TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论…

2026/10/2 4:41:24 阅读更多 →
[Java 开发指南]MyEclipse的代码导航工具

[Java 开发指南]MyEclipse的代码导航工具

无论是在文件之间导航还是在文件中编码,MyEclipse都有许多导航工具可用于加快开发者的工作流程。使用以下导航工具的任意组合,你的工作效率就会飙升。快速文件导航按CtrlP使用快捷方式按名称打开任何文件。开发人员可以使用AltLeft和AltRight在文件和编辑…

2026/10/11 0:10:53 阅读更多 →
飞牛影视PC版安装教程:从零到流畅观影的完整指南

飞牛影视PC版安装教程:从零到流畅观影的完整指南

飞牛影视PC版安装教程:从零到流畅观影的完整指南 【免费下载链接】fntv-electron 飞牛影视PC版 项目地址: https://gitcode.com/gh_mirrors/fn/fntv-electron 飞牛影视PC版(fntv-electron)是一款基于 Electron 构建的飞牛影视桌面客户…

2026/10/13 0:20:16 阅读更多 →

最新新闻

嵌入式静态分析实战:用Cppcheck拦截疑难bug的完整指南

嵌入式静态分析实战:用Cppcheck拦截疑难bug的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 6:20:46 阅读更多 →
汽车电子硬件选型实战:高边开关、FPGA、MCU与SiC FET四类器件协同设计指南

汽车电子硬件选型实战:高边开关、FPGA、MCU与SiC FET四类器件协同设计指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 6:20:46 阅读更多 →
PSO优化SVR超参数:风电功率预测回归拟合实战

PSO优化SVR超参数:风电功率预测回归拟合实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 6:20:46 阅读更多 →
Zemax像差分析图全解:从点列图到MTF的判读方法

Zemax像差分析图全解:从点列图到MTF的判读方法

简介:这是一份面向Zemax初学者的像差分析图解文档,专门解决光学设计入门时难以从点列图、垂轴像差曲线等各类图像中快速识别像差类型的问题。文档以Zemax生成的典型图像为素材,逐类讲解初级球差、轴向色差、垂轴色差、子午慧差、子午场曲、弧…

2026/10/13 6:20:45 阅读更多 →
planck.js 版本演进与架构变迁:从 Box2D 移植到 TypeScript 引擎的完整技术脉络

planck.js 版本演进与架构变迁:从 Box2D 移植到 TypeScript 引擎的完整技术脉络

游戏开发 【免费下载链接】planck.js 2D JavaScript Physics Engine 项目地址: https://gitcode.com/gh_mirrors/pl/planck.js 点击查看 免费下载 planck.js 是一个以 TypeScript/JavaScript 实现的 2D 物理引擎(MIT 协议,源自 Box2D 的跨平…

2026/10/13 6:20:45 阅读更多 →
C语言核心知识点详解:const指针、野指针、assert断言与传值/传址

C语言核心知识点详解:const指针、野指针、assert断言与传值/传址

一、const 与指针:权限控制的核心逻辑 核心原则:const 靠近谁,就限制谁的修改权限,共三种核心场景,覆盖所有实用需求。 常量指针(const 修饰指向的内容)规则:指针 p 的指向可修改&…

2026/10/13 6:19:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →