小编推荐
大型企业的业务通常发生于多个异构系统,如部分业务发生在苍穹,部分发生在云之家,且两个系统的业务逻辑存在上下游交叉,需要通过接口进行对接。但不同异构系统的协议标准不同,难以统一,对于非常规的报文格式更是阻碍项目推进。
本期案例分享了基于苍穹开放平台的多个接口开发方案,实现协议不同情况下的异构系统高效对接。
撰稿人:白源
【温馨提示:因企业业务场景存在不同程度的差异,此案例仅供参考,请根据现场实际业务情况探讨最优解决方案,并在上线前进行充分验证。】
1、 业务背景
客户同时购买了苍穹和云之家,有的业务发生在苍穹,有的业务发生在云之家。当两个系统的业务逻辑发生上下游交叉时,就会出现云之家的智能审批单据需要通过苍穹来处理后续的业务,因此我们通过在智能审批的机器人节点添加外部接口,以苍穹的开放平台为底座,接收智能审批单据的数据,处理后续的业务数据。
但云之家的智能审批单据获取API接口,接收和响应的数据类型是文本信息,却要以application/json的媒体类型进行交互,通常情况下,我们没有办法直接通过基础的API2.0来完成这样复杂的交互。

图1云之家接口对接规范
类似的其他集成项目中,我们也经常会遇到各个异构系统都奉行着各自的协议标准,要想统一这些标准是根本无法做到的。当面对那些非常规、“刁钻”的API请求,非通用的报文格式,会极大阻碍项目的推进。
因此,客户希望能供提供相应的解决方案,来实现协议不同情况下的异构系统高效对接。
2、 解决方案
苍穹在系统间集成特别是在协议兼容性方面,极大地满足了不同老旧系统对于陈旧性API接口协议的需求,让我们对接不同的异构系统时,能够快速进行接口适配。
在不同的苍穹版本,可以有不同的解决方案。
方案一
适用版本:V5.0.001以下
这里我们使用的是API1.0接口,新增自定义服务,通过插件来完成API协议解析和响应数据写入的逻辑。

图2新增API1.0接口

图3插件代码示例
接口开发完成后,即可和云之家进行正常对接。
方案二
适用版本:V5.0.013及以上
苍穹提供了自定义Servlet来自行处理逻辑,参考配置方案见连接自定义 Servlet 开发 API 接口 ,需要注意的是自定义的Servlet需要部署在web节点下,具体的业务逻辑可以通过微服务的方式来进行通信。
方案三
适用版本:V5.0.018及以上
针对云之家的这种特殊场景,苍穹新版本做了更好的适配,参考序列化出入参 ,可以将加密后的数据进行处理转换成对应的JSON数据包再完成相应的业务逻辑。
1) 新增API
新增Java插件API,将开发好的接口类等信息配置进去。

图4注册API接口
2)开发插件类
接口类添加APIController和APIMapping等注解,创建注解为ApiPostMappi