方式一:API 调用
第三方系统集成就需要通过调用 API 来管理项目、流程
12345/dolphinscheduler/doc.html?language=zh_CN&lang=cn
01.创建 token
02.使用 Token
Postman ApiPost
进行API调试的Postman和编写接口文档的Swagger以及进行压力测试的Jmeter等。
示例
d8975b0e802dab417415ad24641c2751
http://10.77 .4.183 :12345 /dolphinscheduler
01 . JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能
02 . HttpClient okhttp
0 . value, method;
value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method: 指定请求的method类型, GET 、POST 、PUT 、DELETE 等;
1 、 params,headers;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求
2 、 consumes,produces;
consumes: 指定处理请求的提交内容类型(Content -Type ),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept )类型中包含该指定类型才返回;
POST 请求方式的编码有3 种,具体的编码方式如下:
A :application/x-www-form-urlencoded ==最常见的post提交数据的方式,以form表单形式提交数据
B :application/json ==以json格式提交数据
C :multipart/form-data ==一般使用来上传文件(较少用)
在通过requests.post()进行POST 请求时,传入报文的参数有两个,一个是data ,一个是json。
常见的form表单可以直接使用data 参数进行报文提交,而data 的对象则是python中的字典类型。
01 .通过给 data 参数传递一个 dict,我们的数据字典在发出请求时会被自动编码为表单形式
02 .发送编码为 JSON 形式的数据
data =json.dumps(payload ) json=payload files=files
示例代码
import requests
import json
headers = {'token' :'d641c2751' }
host = "http://22.22.22.22:12345"
base_url = "/dolphinscheduler/projects/list"
need_url = host+base_url
r = requests.get(need_url,headers=headers, timeout=3 )
print (r.text)
comb_url = host+ "/dolphinscheduler/projects"
print (comb_url)
payload = {'pageNo' : 1 , 'pageSize' :1 }
r = requests.get(comb_url, headers=headers, params=payload,timeout=3 )
print (r.text)
create_url = host+ "/dolphinscheduler/projects"
payload = {'description' : "Data deal" , 'projectName' :"Dataflow" }
payload = json.dumps(payload)
print (payload)
r = requests.post(create_url, headers=headers,params= payload)
print (r.url)
print (r.text)
方式二:01.WorkflowAsCode
PythonGatewayServer, 这是一个 Workflow-as -code 的服务端,与 apiServer 等服务的启动方式相同
Workflow-as -code 让用户可以通过 Python API 创建工作流,动态、批量地创建和更新工作流
$ pip install apache-dolphinscheduler
$ pydolphinscheduler version
0.1 .0
02.Python API 动态、批量地创建和更新工作流
from pydolphinscheduler.core.process_definition import ProcessDefinition
from pydolphinscheduler.tasks.shell import Shell
with ProcessDefinition(
name="tutorial" ,
schedule="0 0 0 * * ? *" ,
start_time="2022-03-01" ,
tenant="caic" ,
) as pd:
task_parent = Shell (name="task_parent" , command ="echo hello pydolphinscheduler" )
task_child_one = Shell (name="task_child_one" , command ="echo 'child one'" )
task_child_two = Shell (name="task_child_two" , command ="echo 'child two'" )
task_union = Shell (name="task_union" , command ="echo union" )
task_group = [task_child_one, task_child_two]
task_parent.set_downstream(task_group)
task_union << task_group
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了