DolphinScheduler接口实操(二):如何寻找接口

上一篇写了DolphinScheduler接口实操一利用接口实现高效批量工作流导入及脚本上线,通过DolphinScheduler的一些接口来实现导入-上线工作流,那么DolphinScheduler的接口应该怎么找呢?

17376003748872d0de4fa4586d785c54aa0997d8c953c

转载自风_间

上一篇写了DolphinScheduler接口实操(一):利用接口实现高效批量工作流导入及脚本上线》,通过DolphinScheduler的一些接口来实现导入-上线工作流,那么DolphinScheduler的接口应该怎么找呢?在此简单总结一篇。

接下来以手动执行一次工作流为例。

寻找接口

首先需要手动操作,要执行工作流就要到工作流定义页面执行。

1737600374075777d45bbbcdf50d49c42c70ad7acf5fe

就在这里进入F12 – 网络,然后去点一个任务的运行。

17376003741505627d0660d9bd593ae9e8ee02e1f8c8d

就能看到接口,15410101436864 就是上面工作流的code。

1737600374186b08f75df07db1d10dfb3b4dcd7bdf951

把工作流执行完。

173760037419197c89a423f2c09211fa92ea19af84425

URL

继续观察接口。发现东西增加了。

17376003742056fa988cdc39bedf61496b488e849b4cc


请求URL和请求方法就是有用信息。

start_process_url = 'http://IP:12345/dolphinscheduler/projects/{project_id}/executors/start-process-instance'# 请求方法是POST

请求参数

接着找请求参数

17376003749374f85a247082e60c1d86fa7f646a916ea

把这些东西拿出来,就是请求体

data = {        'processDefinitionCode': process_code,        'failureStrategy': 'CONTINUE',        'warningType': 'FAILURE',        'warningGroupId': 2,        'execType': 'START_PROCESS',        'startNodeList': [],        'taskDependType': 'TASK_POST',        'complementDependentMode': 'OFF_MODE',        'runMode': 'RUN_MODE_SERIAL',        'processInstancePriority': 'MEDIUM',        'workerGroup': 'default',        'environmentCode': '',        'startParams': '',        'expectedParallelismNumber': '',        'dryRun': 0,        'scheduleTime':{"complementStartDate": "2024-10-25 00:00:00", "complementEndDate": "2024-10-25 00:00:00"}    }

测试接口

找到之后就测试一下接口是否正常可用 python 或 foxapi之类的工具,head token 在上一篇已经讲过了,不再赘述。

start_process_url = 'http://IP:12345/dolphinscheduler/projects/{project_id}/executors/start-process-instance'project_id = ''tokenheaders = {    'Accept': 'application/json',    'token': token}def start_process(process_code):    url = start_process_url.format(project_id=project_id)    data = {        'processDefinitionCode': process_code,        'failureStrategy': 'CONTINUE',        'warningType': 'FAILURE',        'warningGroupId': 2,        'execType': 'START_PROCESS',        'startNodeList': [],        'taskDependType': 'TASK_POST',        'complementDependentMode': 'OFF_MODE',        'runMode': 'RUN_MODE_SERIAL',        'processInstancePriority': 'MEDIUM',        'workerGroup': 'default',        'environmentCode': '',        'startParams': '',        'expectedParallelismNumber': '',        'dryRun': 0,        'scheduleTime':{"complementStartDate": "2024-10-25 00:00:00", "complementEndDate": "2024-10-25 00:00:00"}    }    response = requests.post(url, headers=headers, data=data)    print(response.status_code)    if __name__ == '__main__':    start_process('15402965147328')

执行之后,在DolphinScheduler的工作流实例观察一下,确实运行了,而且代码中返回了200,说明一切都是正常的,可以用的。

这里结合上一篇中获取工作流列表的方法,就可以实现把所有工作流手动执行一次。

原文链接:https://blog.csdn.net/weixin_45399602/article/details/143232944