API定义获取方法、装置及存储介质与流程

文档序号:33767740发布日期:2023-04-18 20:13阅读:57来源:国知局
API定义获取方法、装置及存储介质与流程

本技术涉及网络通信领域,特别是涉及一种api定义获取方法、装置及存储介质。


背景技术:

1、本文档中的api,即应用程序编程接口(application programming interface),是指开放api或openapi,也称接口。软件服务商可将自己的服务封装成一系列api开放出去,供第三方开发者调用。api广泛运用于移动互联网、物联网、电子商务、社交媒体、移动支付、网约车、银行、电信、电子政务等领域,服务运营商提供api供第三方调用,也可以供自己的官方app、小程序调用。开放api服务时,服务商需要向第三方开发者提供api文档、sdk,以便开发者知晓这些api的用途和调用方法,api文档和sdk可由api定义自动生成。服务商还需要将api定义存储在api网关系统中,以便api网关执行流量和安全控制,实施服务调度。api定义包括api的名称,版本,请求参数列表,返回值列表,请求参数或返回值包括变量名,数据类型等信息。要定义一个api,现有技术主要通过手写复杂的配置文件来实现,耗时又耗力。也有部分厂商实现了通过网页表单来定义api,但仍需要非常可观的手工操作来填写相关表单。

2、一个业务系统的api数量往往比较多,如果通过人工进行api的定义,需要耗费大量的人力和时间,效率低下。因此,亟需一种技术方案满足对api进行自动化定义的需求。在存量业务api化改造时,这种需求尤为迫切,因为真正执行api业务逻辑的代码早已稳定运行多年,只是由于缺少了api定义信息而无法上线api网关来保证安全和管控,也不能自动生成api文档和sdk。针对这一问题,业界已有一些服务提供商支持通过api管理软件如swagger、postman对api进行定义,但是这些api管理工具只支持有限的几种api协议,还有很多公司的api不被这些工具支持。而即使使用这些工具,也还是要手工书写代码来描述api定义,仍然不能解决存量api快速导入的需求。


技术实现思路

1、在本实施例中提供了一种api定义获取方法、装置及存储介质,以解决相关技术中存在的缺少api的自动化定义工具,导致api无法快速导入的问题。

2、第一个方面,在本实施例中提供了一种api定义获取方法,所述方法包括:

3、采集通信报文,所述通信报文基于api协议和api定义对被调用api的请求数据和返回数据进行组装获得;

4、根据所述api协议,确定所述api定义在所述通信报文中的位置、数据类型和编码方式;

5、基于所述位置、所述数据类型和所述编码方式对所述通信报文进行解析,获得所述api定义。

6、在其中的一些实施例中,所述api定义包括api的名称、版本,以及请求参数和响应参数的变量名称、变量数据类型;所述基于所述位置、所述数据类型和所述编码方式对所述通信报文进行解析,获得所述api定义包括:

7、基于所述编码方式,对所述通信报文解码;

8、将所述位置、所述数据类型与所述api协议确定的所述名称、版本对应的位置、数据类型相匹配的解析结果,作为所述api的名称、版本;

9、将所述位置、所述数据类型与所述api协议确定的所述变量名称、变量数据类型对应的位置、数据类型相匹配的解析结果,作为所述api的请求参数和响应参数的变量名称、变量数据类型。

10、在其中的一些实施例中,所述基于所述位置、所述数据类型和所述编码方式对所述通信报文进行解析,获得所述api定义还包括:

11、在多个通信报文中的所述api的名称、版本均相同的情况下,将所述多个通信报文的请求参数的变量名称、变量数据类型合并,将所述多个通信报文的响应参数的变量名称、变量数据类型合并,获得所述api定义。

12、在其中的一些实施例中,在所述根据所述api协议,确定所述api定义在所述通信报文中的位置、数据类型和编码方式之前,所述方法还包括:

13、设置产品对应的token,所述产品与所述api协议预先绑定;

14、将采集到的所述通信报文与所述token绑定;

15、基于所述通信报文与所述token的绑定关系,以及所述token与所述api协议的对应关系,获得所述通信报文对应的所述api协议。

16、在其中的一些实施例中,在所述基于所述位置、所述数据类型和所述编码方式对所述通信报文进行解析,获得所述api定义之后,所述方法还包括:

17、确定所述api定义的结构化存储格式;

18、基于所述结构化存储格式将所述api定义存入配置文件或数据库。

19、在其中的一些实施例中,在所述根据所述api协议,确定所述api定义在所述通信报文中的位置、数据类型和编码方式之前,所述方法还包括:

20、采集历史报文,所述历史报文对应的api协议属于预先确定的api协议列表;

21、基于所述历史报文,以对应的api协议为标签对机器学习模型进行训练,获得api协议解析模型;

22、将所述通信报文输入所述api协议解析模型中,获得对应的api协议。

23、在其中的一些实施例中,所述采集通信报文包括:

24、安装用于收集通信报文的浏览器插件,并在所述浏览器插件中设置所述token;

25、当所述浏览器插件对应的浏览器调用api时,基于所述浏览器插件监听所述api对应的通信报文;

26、在所述通信报文符合预设条件的情况下,采集所述通信报文和所述token。

27、在其中的一些实施例中,所述采集通信报文还包括:

28、在运行所述产品的api服务器或反向代理服务器中设置所述token;

29、当客户端调用api时,基于所述api服务器或所述反向代理服务器监听所述api对应的通信报文;

30、在所述通信报文符合预设条件的情况下,采集所述通信报文和所述token。

31、第二个方面,在本实施例中提供了一种api定义获取装置,所述装置包括:

32、采集模块,用于采集通信报文,所述通信报文基于api协议和api定义对被调用api的请求数据和返回数据进行组装获得;

33、确定模块,用于根据所述api协议,确定所述api定义在所述通信报文中的位置、数据类型和编码方式;

34、解析模块,用于基于所述位置、所述数据类型和所述编码方式对所述通信报文进行解析,获得所述api定义。

35、第三个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的api定义获取方法的步骤。

36、与相关技术相比,本实施例提供的api定义获取方法通过采集通信报文,该通信报文基于api协议和api定义对被调用api的请求数据和返回数据进行组装获得,为api定义的获取提供了数据来源;根据该api协议,确定该api定义在该通信报文中的位置、数据类型和编码方式,为后续从通信报文中解析出api定义获取必要的信息;基于该位置、数据类型和编码方式对通信报文进行解析,获得api定义,即通过对通信报文进行解析提取相关信息并自动生成api定义,该api定义提供了一种通用的结构化模型,对遵守不同api协议的api的业务层面参数进行定义,解决了相关技术中存在的缺少api的自动化定义工具,导致api无法快速导入的问题。

37、本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1