DBAPI如何实现API编排
DBAPI如何实现API编排
什么是编排API?
- DBAPI 可以将多个API组合成一个API,从而实现更复杂的业务场景。通过页面上编辑流程图,可以快速实现业务场景的编排
- 比如电商业务中,有多个API:创建订单表记录A、商品信息减库存B、生成物流订单C,那么我们可以编排
A-> B-> C
,实现一个完整的下单API。客户端调用下单API,会自动按流程访问A、B、C
- 同时编排支持判断节点,在判断节点编写自定义脚本,可以根据判断脚本自动流转到不同的分支执行API
- 编排也支持将前一个API的结果作为参数传入下一个API
需求
- 插入学生数据之前判断数据是否已存在,如果不存在就插入,存在就更新
- 先准备好三个API
- 根据name查询已存在的学生数量
- 新增学生,根据name和age参数插入学生信息
- 更新学生,根据name修改学生的年龄信息
API编排实操
- 点击分组上的
创建编排API
按钮,进入编排页面
- 左侧定义API的基本信息,注意定义两个参数
name
和age
- 点击开始节点,在页面会创建一个开始节点,可以拖动到画布合适位置
- 点击API节点,在页面会创建一个API节点,鼠标悬浮在API节点会显示一个编辑按钮,点击按钮进入编辑界面
- 选择API为
查询学生数量
,此时参数定义会自动加载出来,开始填写参数
参数值请填写JS脚本,系统通过JS脚本动态计算参数的值。
JS脚本中可以使用系统内置变量
parameters
和results
,parameters
的值是整个编排API最外层的所有参数值;results
的值是每个节点执行返回的结果,如果是API节点就是API请求返回的结果,如果是判断节点就是判断后的结果(true或者false),可以通过节点ID作为key取出某个节点的结果
这里填写name参数为parameters.name
填写节点ID,注意必须是英文字母和数字组成且以英文字母开头,如果画布中有多个节点,注意节点ID不能重复,要唯一
注意这个ID可以在后面的节点中使用,例如
results.[id]
可以提取此节点执行结果
- 将开始节点和API节点用连线连接起来
- 点击判断节点,在页面会创建一个判断节点,鼠标悬浮会显示一个编辑按钮,点击按钮进入编辑界面
- 填写节点ID,填写判断脚本
判断脚本请填写JS脚本,必须是bool表达式,系统通过JS脚本动态计算判断的值
JS脚本中可以使用系统内置变量
parameters
和results
,parameters
的值是整个编排API最外层的所有参数值;results
的值是每个节点执行返回的结果,如果是API节点就是API请求返回的结果,如果是判断节点就是判断后的结果(true或者false),可以通过节点ID作为key取出某个节点的结果
这里我们填写results.count.data[0].num == 0
因为
查询学生数量
API的执行结果格式为{"data":[{"num":0}],"msg":null,"success":true}
,results.count.data[0].num
表示取出num值
- 连线
- 添加API节点,选择
插入新的学生
API,定义id为add
这里填写name参数为parameters.name
, age参数为parameters.age
- 添加API节点,选择
修改学生年龄
API,定义id为update
这里填写name参数为parameters.name
, age参数为parameters.age
- 将判断节点的Y端口连线到节点
add
,将判断节点的N端口连接到节点update
判断结果为true时执行Y分支,判断结果为false时执行N分支。
- 添加结束节点,编辑脚本内容为
results.add
,将节点add
连接到此节点
- 添加结束节点,编辑脚本内容为
results.update
,将节点update
连接到此节点
- 保存API并上线
-
请求测试
-
先传入参数
name=刘德华 age=50
,执行成功可以看到插入了一条数据
通过日志也可以看出执行了add节点
- 再传入参数
name=刘德华
age=60
,执行成功可以看到更新了一条数据
通过日志也可以看出执行了update节点
总结
API编排在企业版4.2.0以上版本支持