说到接口编排,先说说Http接口有什么组成?看下面的代码块以及返回的Result。在Java中HttpClient似乎对每一种method都有不同的请求,但是越是低级语言对接口的抽程度越高。
{
"url": "https://bizhug.com/killer",
"method": "POST", //GET,POST,PUT,DELETE等
"headers": {
"Content-Type": "application/json" //自定义hader
},
"body": ""
}
首先需要一个可视化的设计器,这里推荐bpmn.js,完全兼容BPMN2.0规范,然后我需要管控这些接口的使用,也就是需要管理接口的安全性,这里可以通过把接口挂到开放平台上,后端怎么编排呢?这里就需要流程引擎了,流程引擎太重了也不好,像Flowable、Activiti和Camunda这三兄弟基本上考虑不到,以为它太重了。对数据库依赖过重。这个时候推荐JDEasyFlow。下面是几个我关注的几个点:
JDEasyFlow是一款通用流程编排组件, 适用于服务编排、工作流、任务审批等场景。它的特点是简单、灵活、易扩展。
当然这样我可以做一个接口编排工具了,还有一些mock测试等,需要自己再去扩展。编排完成之后,应用开发者怎么用?需要支持应用开发者把代码下载掉,也可以支持发布网关直接可以用。
接口编排属于把原子性的操作组合一下,其实它和BFF层编排以及复用业务能力不一样,BFF层编排可以考虑使用graphQL ——一种用于构建API的查询语言。接口编排其实停留在最小力度的复用。我们的业务能力是不是也可以复用呢?除了依靠BPM实现业务流程的复用,我们还可以用什么实现业务能力的复用?