API接口访问方法、转换方法、装置、设备及存储介质制造方法及图纸

技术编号:36098002 阅读:13 留言:0更新日期:2022-12-24 11:16
本申请实施例提供了API接口访问方法、转换方法、装置、设备及存储介质,属于信息技术领域。本申请实施例与相关技术相比,通过对Web Service接口请求信息的解析,并根据待访问API接口的接口结构描述信息将Web Service接口请求信息转换为待访问API接口的访问请求,实现通过SOAP协议来访问REST业务接口,从而能够实现接口统一协议调用,进而有效降低接口提供方系统的开发和维护的工作量。系统的开发和维护的工作量。系统的开发和维护的工作量。

【技术实现步骤摘要】
API接口访问方法、转换方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种API接口访问方法、转换方法、装置、设备及存储介质。

技术介绍

[0002]Web服务常用的接口协议有REST协议和SOAP协议。由于REST协议可以降低开发的复杂性,提高系统的可伸缩性,越来越多的Web服务开始采用REST协议设计和实现。目前,很多系统对外开放的API接口都是采用REST协议进行访问调用,但也存在很多第三方系统希望以SOAP协议去调用接口。
[0003]针对上述需求,相关技术中往往是同时写一套REST协议接口和一套SOAP协议接口,使得第三方系统可以分别调用。但是这种方式会增加系统开发和维护的工作量,从而增加系统成本。

技术实现思路

[0004]本申请实施例的主要目的在于提出一种API接口访问方法、转换方法、装置、设备及存储介质,能够使得第三方系统可以通过SOAP协议来调用REST接口。
[0005]为实现上述目的,本申请实施例的第一方面提出了一种API接口访问方法,所述方法包括:获取Web Service接口请求;其中,所述Web Service接口请求为SOAP协议请求;根据所述Web Service接口请求,获取待访问的API接口的接口信息;其中,所述API接口为REST协议接口;根据所述接口信息,得到所述API接口对应的接口结构描述信息;根据所述接口结构描述信息,将所述Web Service接口请求转换成REST请求;发送所述REST请求到所述API接口。r/>[0006]在一些实施例中,所述Web Service接口请求包含XML请求报文,所述API接口的接口信息包括API接口类名和API实现类类名;所述根据所述Web Service接口请求,获取待访问的API接口的接口信息,包括:根据所述Web Service接口请求的XML请求报文,获取请求路径;根据所述请求路径,获取所述API接口的API接口类名和API实现类类名;所述根据所述接口信息,得到所述API接口对应的接口结构描述信息,包括:根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接口的对应的接口结构描述信息。
[0007]在一些实施例中,所述接口结构描述信息包括入参结构信息和出参结构信息;其中,所述入参结构信息包括入参方法信息和入参类型信息,所述出参结构信息包括出参方法信息和出参类型信息;所述根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接
口的对应的接口结构描述信息,包括:根据所述API接口类名,用Java反射机制获取对应的入参方法信息和出参方法信息;根据所述API实现类类名和所述入参方法信息、出参方法信息,用Java反射机制获取对应的入参类型信息和出参类型信息;根据所述入参类型信息和出参类型信息,形成所述接口结构描述信息。
[0008]在一些实施例中,所述根据所述接口结构描述信息,将所述Web Service接口请求转换成REST请求,包括:解析所述XML请求报文,得到第一对象节点值;根据所述接口结构描述信息,构建JSON对象;将第一对象节点值对应存储到所述JSON对象,得到REST请求的主体信息;根据所述主体信息,组装成所述REST请求。
[0009]在一些实施例中,所述解析所述XML请求报文,得到第一对象节点值,包括:将所述XML请求报文转换成文档类数据,从所述文档类数据中获取主体信息;根据第一遍历规则遍历所述文档类数据主体信息中的第一对象节点,获取得到多个第一对象节点对应的第一对象节点值;其中,所述第一遍历规则为逐层遍历或递归遍历,所述第一对象节点包括纯文本Element元素节点和对象类型Element元素节点。
[0010]在一些实施例中,所述获取Web Service接口请求之前,还包括:监听已实现平台预设注解规则注解的API接口实例;获取并存储监听到的所述API接口实例的请求路径、API接口类名和API实现类类名。
[0011]在一些实施例中,所述获取Web Service接口请求之前,还包括:通过预设的WSDL描述获取接口,获取得到所述API接口的WSDL描述信息;根据所述WSDL描述信息,组装得到所述Web Service接口请求。
[0012]在一些实施例中,所述API接口的WSDL描述信息由以下方式获取得到:监听已实现平台预设注解规则注解的API接口实例;获取并存储监听到的所述API接口实例的请求路径;根据所述API接口实例的请求路径,得到所述API接口的接口信息;根据所述接口信息,得到所述API接口对应的接口结构描述信息;根据所述接口结构描述信息和预设的目标格式模板,构建所述API接口的WSDL描述信息。
[0013]在一些实施例中,所述API接口的接口信息包括API接口类名;所述根据所述API接口实例的请求路径,得到所述API接口的接口信息,包括:识别所述API接口实例的请求路径,得到所述API接口类名;所述根据所述接口信息,得到所述API接口对应的接口结构描述信息,包括:根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接口的对应的接口结构描述信息。
[0014]在一些实施例中,所述根据所述接口结构描述信息和预设的目标格式模板,构建所述API接口的WSDL描述信息,包括:
遍历所述API接口的对应的接口结构描述信息,为WSDL基础元素节点赋值;其中,所述基础元素节点包括以下的至少一种:接口名、命名空间、调用路径;根据所述接口结构描述信息对应的参数类型,构造WSDL类型节点;根据所述接口结构描述信息对应的方法信息,构造生成对应的Element元素节点;利用所述目标格式模板,将所述WSDL基础元素节点、WSDL类型节点、Element元素节点组装形成目标格式的WSDL描述信息;其中,所述目标格式为XML格式。
[0015]在一些实施例中,所述发送所述REST请求到所述API接口之后,还包括:获取来自所述API接口的JSON响应报文;根据所述JSON响应报文,解析得到响应主体信息;获取预设的XML响应报文模板;根据所述响应主体信息和所述XML响应报文模板,组装得到XML响应报文;将所述XML响应报文发送给Web Service请求方。
[0016]在一些实施例中,还包括:获取所述API接口的访问策略;所述访问策略包括以下的至少一种:鉴权访问策略、限流访问策略、熔断策略;当所述访问策略包括鉴权访问策略,所述根据所述Web Service接口请求,获取待访问的API接口的接口信息,包括:根据所述Web Service接口请求,获取待访问的API接口的接口信息和访问账号;根据所述访问账号和预设的账号权限对应关系,判断所述访问账号的访问权限;当所述访问策略包括限流访问策略,所述根据所述Web Service接口请求,获取待访问的API接口的接口信息之后,包括:获取待访问的API接口的限流访问策略;根据限流访问策略,对所述API接本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种API接口访问方法,其特征在于,所述方法包括:获取Web Service接口请求;其中,所述Web Service接口请求为SOAP协议请求;根据所述Web Service接口请求,获取待访问的API接口的接口信息;其中,所述API接口为REST协议接口;根据所述接口信息,得到所述API接口对应的接口结构描述信息;根据所述接口结构描述信息,将所述Web Service接口请求转换成REST请求;发送所述REST请求到所述API接口。2.根据权利要求1所述的API接口访问方法,其特征在于,所述Web Service接口请求包含XML请求报文,所述API接口的接口信息包括API接口类名和API实现类类名;所述根据所述Web Service接口请求,获取待访问的API接口的接口信息,包括:根据所述Web Service接口请求的XML请求报文,获取请求路径;根据所述请求路径,获取所述API接口的API接口类名和API实现类类名;所述根据所述接口信息,得到所述API接口对应的接口结构描述信息,包括:根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接口的对应的接口结构描述信息。3.根据权利要求2所述的API接口访问方法,其特征在于,所述接口结构描述信息包括入参结构信息和出参结构信息;其中,所述入参结构信息包括入参方法信息和入参类型信息,所述出参结构信息包括出参方法信息和出参类型信息;所述根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接口的对应的接口结构描述信息,包括:根据所述API接口类名,用Java反射机制获取对应的入参方法信息和出参方法信息;根据所述API实现类类名和所述入参方法信息、出参方法信息,用Java反射机制获取对应的入参类型信息和出参类型信息;根据所述入参类型信息和出参类型信息,形成所述接口结构描述信息。4.根据权利要求2或3所述的API接口访问方法,其特征在于,所述根据所述接口结构描述信息,将所述Web Service接口请求转换成REST请求,包括:解析所述XML请求报文,得到第一对象节点值;根据所述接口结构描述信息,构建JSON对象;将第一对象节点值对应存储到所述JSON对象,得到REST请求的主体信息;根据所述主体信息,组装成所述REST请求。5.根据权利要求3所述的API接口访问方法,其特征在于,所述解析所述XML请求报文,得到第一对象节点值,包括:将所述XML请求报文转换成文档类数据,从所述文档类数据中获取主体信息;根据第一遍历规则遍历所述文档类数据主体信息中的第一对象节点,获取得到多个第一对象节点对应的第一对象节点值;其中,所述第一遍历规则为逐层遍历或递归遍历,所述第一对象节点包括纯文本Element元素节点和对象类型Element元素节点。6.根据权利要求1、2、3、5中任意一项所述的API接口访问方法,其特征在于,所述获取Web Service接口请求之前,还包括:监听已实现平台预设注解规则注解的API接口实例;
获取并存储监听到的所述API接口实例的请求路径、API接口类名和API实现类类名。7.根据权利要求1、2、3、5中任一项所述的API接口访问方法,其特征在于,所述获取Web Service接口请求之前,还包括:通过预设的WSDL描述获取接口,获取得到所述API接口的WSDL描述信息;根据所述WSDL描述信息,组装得到所述Web Service接口请求。8.根据权利要求7所述的API接口访问方法,其特征在于,所述API接口的WSDL描述信息由以下方式获取得到:监听已实现平台预设注解规则注解的API接口实例;获取并存储监听到的所述API接口实例的请求路径;根据所述API接口实例的请求路径,得到所述API接口的接口信息;根据所述接口信息,得到所述API接口对应的接口结构描述信息;根据所述接口结构描述信息和预设的目标格式模板,构建所述API接口的WSDL描述信息。9.根据权利要求8所述的API接口访问方法,其特征在于,所述API接口的接口信息包括API接口类名;所述根据所述API接口实例的请求路径,得到所述API接口的接口信息,包括:识别所述API接口实例的请求路径,得到所述API接口类名;所述根据所述接口信息,得到所述API接口对应的接口结构描述信息,包括:根据所述API接口类名和API实现类类名,用Java反射机制,解析出所述API接口的对应的接口结构描述信息。10.根据权利要求9所述的API接口访问方法,其特征在于,所述根据所述接口结构描述信息和预设的目标格式模板,构建所述API接口的WSDL描述信息,包括:遍历所述API接口的对应的接口结构描述信息,为WSDL基础元素节点赋值;其中,所述基础元素节点包...

【专利技术属性】
技术研发人员:徐霞杨健伟张社丽郭敏
申请(专利权)人:深圳市蓝凌软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1