实践案例 | 协议不同?OpenAPI助力个性化开发

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

实践案例 | 协议不同?OpenAPI助力个性化开发

小编推荐


大型企业的业务通常发生于多个异构系统,如部分业务发生在苍穹,部分发生在云之家,且两个系统的业务逻辑存在上下游交叉,需要通过接口进行对接。但不同异构系统的协议标准不同,难以统一,对于非常规的报文格式更是阻碍项目推进。


本期案例分享了基于苍穹开放平台的多个接口开发方案,实现协议不同情况下的异构系统高效对接。


撰稿人:白源


【温馨提示:因企业业务场景存在不同程度的差异,此案例仅供参考,请根据现场实际业务情况探讨最优解决方案,并在上线前进行充分验证。】



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)开发插件类

接口类添加APIControllerAPIMapping等注解,创建注解为ApiPostMapping的方法,使用ApiRequestBody注解来接收处理好的请求体,根据实际的业务需要直接构造响应数据success字符串设为返回值即可。


5代码示例 -1


请求体如实体类或JSONObjectMap对象等。拿的数据包包括datasuccesserrorCode三部分,重点关注data中的数据,是API接口中所Post的数据。


6代码示例 -2


创建序列化和反序列化插件,接收云之家推送的加密数据包,通过反序列化插件完成请求数据包的解密,通过序列化插件来完成响应数据包的文本格式的转变,如果不开启序列化,那么输出的内容则是JSON格式的字符串而非字符串本身。


7代码示例 -3


8代码示例 -4


9 API测试


最后一定要在API注册界面将我们开发好的序列化插件和反序列化插件注册进去。


10 接口注册插件


这样我们就完成了整个接收参数响应数据的对接过程了。


诸如此类还有很多,比如POST单据内容并保存的时候,却因为字段名称匹配不上无法直接使用操作API,可以通过脚本API完成转换并调用操作API来完成此过程,再比如附件的上传下载等等,苍穹都提供了强大的API能力,辅助开发者更好地解决标准性不统一、业务逻辑层层递进等问题。


3、 方案的可推广价值

1. 灵活组合与搭配: 开发者能够通过操作、插件、脚本API的自由组合和搭配,轻松完成多协同多协议下的API接口开发,为复杂业务场景提供了高度的灵活性。

2. 解决非常规挑战: 针对非常规的API协议,系统提供了多种解决途径,使开发者能够迎刃而解回调通知、数据包协议不匹配、业务逻辑复杂处理等挑战,确保接口对接更加顺畅。

3. 老旧系统兼容性: 针对老旧系统和公有云系统,系统提供了强大的兼容性,使API的对接变得更加稳定、安全、快捷,助力开发者在面对各种系统的时候能够轻松胜任。


实践案例 | 协议不同?OpenAPI助力个性化开发

小编推荐大型企业的业务通常发生于多个异构系统,如部分业务发生在苍穹,部分发生在云之家,且两个系统的业务逻辑存在上下游交叉,需要通过...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息