当前位置: 首页 > news >正文

DBAPI如何实现API编排

DBAPI如何实现API编排

什么是编排API?

  • DBAPI 可以将多个API组合成一个API,从而实现更复杂的业务场景。通过页面上编辑流程图,可以快速实现业务场景的编排
  • 比如电商业务中,有多个API:创建订单表记录A、商品信息减库存B、生成物流订单C,那么我们可以编排A-> B-> C,实现一个完整的下单API。客户端调用下单API,会自动按流程访问A、B、C

  • 同时编排支持判断节点,在判断节点编写自定义脚本,可以根据判断脚本自动流转到不同的分支执行API

  • 编排也支持将前一个API的结果作为参数传入下一个API

需求

  • 插入学生数据之前判断数据是否已存在,如果不存在就插入,存在就更新
  • 先准备好三个API
  1. 根据name查询已存在的学生数量


  1. 新增学生,根据name和age参数插入学生信息


  1. 更新学生,根据name修改学生的年龄信息


API编排实操

  • 点击分组上的创建编排API按钮,进入编排页面

  • 左侧定义API的基本信息,注意定义两个参数nameage

  • 点击开始节点,在页面会创建一个开始节点,可以拖动到画布合适位置

  • 点击API节点,在页面会创建一个API节点,鼠标悬浮在API节点会显示一个编辑按钮,点击按钮进入编辑界面

  • 选择API为查询学生数量,此时参数定义会自动加载出来,开始填写参数

参数值请填写JS脚本,系统通过JS脚本动态计算参数的值。

JS脚本中可以使用系统内置变量 parametersresultsparameters的值是整个编排API最外层的所有参数值;results的值是每个节点执行返回的结果,如果是API节点就是API请求返回的结果,如果是判断节点就是判断后的结果(true或者false),可以通过节点ID作为key取出某个节点的结果

这里填写name参数为parameters.name

填写节点ID,注意必须是英文字母和数字组成且以英文字母开头,如果画布中有多个节点,注意节点ID不能重复,要唯一

注意这个ID可以在后面的节点中使用,例如results.[id]可以提取此节点执行结果

  • 将开始节点和API节点用连线连接起来

  • 点击判断节点,在页面会创建一个判断节点,鼠标悬浮会显示一个编辑按钮,点击按钮进入编辑界面

  • 填写节点ID,填写判断脚本

判断脚本请填写JS脚本,必须是bool表达式,系统通过JS脚本动态计算判断的值

JS脚本中可以使用系统内置变量 parametersresultsparameters的值是整个编排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以上版本支持

相关文章:

  • Excel大厂自动化报表实战(互联网金融-数据分析周报制作下)
  • 仿飞书部门选择器
  • 【YOLO 系列】基于YOLO的车载摄像头道路标志和车辆目标检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • ELK 日志分析系统深度解析与实战指南
  • C++批量读取指定后缀文件
  • GTSAM中InitializePose3::initialize()使用详解
  • 介绍常见的图像和视频存储格式以及其优劣势
  • 大模型在颈椎管狭窄诊疗中的应用研究报告
  • 【驱动设计的硬件基础】串口
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(三)
  • C++开源协程库async_simple有栈协程源码分析
  • Python 函数
  • linux驱动开发(9)- 信号量
  • 了解Redis的使用
  • 如何给Hexo-butterfly主题博客在复制时添加版权声明
  • Hive SQL:一小时快速入门指南
  • 读取配置文件到Settings对象的完整实现
  • 【AS32系列MCU调试教程】驱动开发:AS32驱动库的集成与应用实例
  • 拓展:###单向循环链表###
  • comfyui插件和comfyui mac安装
  • 基础微网站开发公司/谷歌seo和百度seo区别
  • 网站开发哪家公司好/友情链接只有链接
  • 西安企业网站制作价格/北京专门做seo
  • 危险网站怎么解除/alexa全球网站排名分析
  • 山东省建设局注册中心网站/英文网站建设
  • 做网站拍幕布照是什么意思/合肥网络关键词排名