海豚调度器调用api接口来获取工作流信息(获取processDefinitionId)
在前面一文,海豚调度器调用api接口启动工作流(亲试可用),详细介绍processDefinitionId通过t_ds_process_definition来获取,并没有详细介绍如何用api调用。下面详细介绍如何用api获取。
获取工作流的信息:
#查询流程定义通过项目ID
def queryProcessDefinitionAllByProjectId(token,project_name, project_id):
url = f"{dolphin_scheduler_base_url}/projects/{project_name}/process/queryProcessDefinitionAllByProjectId"
params = {
"projectId": project_id
}
headers = {
"Content-Type": "application/json",
"token": token
}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
return response.json()
else:
return None

解析工作流的信息,获取工作流名称和processDefinitionId的字典:
def extract_name_id_mapping(json_data):
name_id_mapping = {}
data_list = json_data.get('data', [])
for item in data_list:
name = item.get('name')
id = item.get('id')
if name and id:
name_id_mapping[name] = id
return name_id_mapping

调用如下:
json_data = queryProcessDefinitionAllByProjectId(token,project_name, project_id)
name_id_mapping = extract_name_id_mapping(json_data)
print(name_id_mapping)
