接口信息生成方法、装置、设备和存储介质与流程

allin2024-05-20  134



1.本公开涉及计算机技术领域,尤其涉及一种接口信息生成方法、装置、设备和存储介质。


背景技术:

2.当前,互联网项目开发主要是采用前后端分离的方式,这就要求前端开发人员和后端开发人员互通交互接口来进行共同开发。通常,由后端开发人员提供描述交互接口的详细信息的接口文档。
3.目前,后端开发人员主要使用yapi、swagger等接口管理工具来生成接口文档。但是,yapi接口管理工具需要开发人员逐项手动填写接口相关的描述信息,使得接口维护成本较高;swagger接口管理工具虽然可以实现接口自动维护,但其是通过对接口开发代码进行注释的方式来生成接口描述文档,使得接口描述文档的规范性差。
4.总之,现有的接口管理工具无法兼顾接口维护成本和接口描述文档的规范性。


技术实现要素:

5.为了解决上述技术问题,本公开提供了一种接口信息生成方法、装置、设备和存储介质。
6.第一方面,本公开提供了一种接口信息生成方法,该方法包括:
7.获取服务通信数据;其中,所述服务通信数据为服务被调用过程中生成的数据;
8.基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息;
9.基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。
10.第二方面,本公开提供了一种接口信息生成装置,该装置包括:
11.服务通信数据获取模块,用于获取服务通信数据;其中,所述服务通信数据为服务被调用过程中生成的数据;
12.接口描述信息确定模块,用于基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息;
13.初始接口描述文档生成模块,用于基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。
14.第三方面,本公开提供了一种电子设备,该电子设备包括:
15.处理器;
16.存储器,用于存储可执行指令;
17.其中,处理器用于从存储器中读取可执行指令,并执行可执行指令以实现第一方面所述的接口信息生成方法。
18.第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面所述的接口信息生成方法。
19.本公开实施例的接口信息生成方法、装置、设备和存储介质,能够获取服务被调用
过程中生成的服务通信数据,并基于所述服务通信数据确定所述服务包含的至少一个接口的接口描述信息,进而基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。实现了在接口上线被调用的过程中自动生成接口描述文档,无需开发人员手动维护接口描述文档,降低了接口描述文档的生成成本和维护成本,从而提高了接口描述文档的生成效率,同时避免了代码注释类的接口描述文档造成的接口描述信息的规范性差的问题,提高了接口描述文档的规范程度。
附图说明
20.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
21.图1为本公开实施例提供的一种接口信息生成方法的流程示意图;
22.图2为本公开实施例提供的另一种接口信息生成方法的流程示意图;
23.图3为本公开实施例提供的一种接口信息生成装置的结构示意图;
24.图4为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
25.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
26.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
27.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
28.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
29.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
30.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
31.目前的接口描述文档通常是后端开发人员利用yapi、swagger等接口管理工具生成。其中,yapi接口管理工具通过开发人员逐个接口逐项的手动输入接口元信息来生成规范化的接口描述文档,其提高了接口描述文档的规范化程度,但是提升了接口维护成本;而swagger接口管理工具是通过向接口开发代码添加注释的方式来实现接口描述文档的自动生成,其提升了接口管理的自动化程度,但是降低了接口描述文档的规范程度。
32.基于上述情况,本公开实施例提供一种接口信息生成方案,以实现在接口上线且被调用的过程中,获取接口被调用时生成的服务通信数据,并对服务通信数据进行一定规则的解析,来自动生成规范化的接口描述文档,从而既提高接口描述文档的规范化程度,又提升接口描述文档生成的自动化程度。
33.在本公开实施例中,该接口信息生成方法可以适用于接口管理的场景。该接口信息生成方法可以由接口信息生成装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在具有一定计算能力的电子设备中,例如可以是用于实现接口管理的电子设备。该电子设备例如可以是笔记本电脑、台式电脑、服务器等。
34.图1示出了本公开实施例提供的一种接口信息生成方法的流程示意图。如图1所示,该接口信息生成方法可以包括如下步骤:
35.s110、获取服务通信数据,该服务通信数据为服务被调用过程中生成的数据。
36.其中,服务通信数据是指某一服务中的至少一个接口被调用的过程中生成的数据,其可以是服务调用请求,也可以是服务调用响应,还可以是服务调用请求和/或服务调用响应在通信网络中流通时网络节点设备中记录的中间数据等。
37.具体地,在接口上线后,如果用户想要使用该接口对应的服务功能,那么用户会操作应用程序,以对该接口发起服务调用。根据远程调用的相关通信协议,用户通过应用程序发起的服务调用请求中包含被调用的接口的一些描述性信息,如接口名称、服务标识或服务域名、接口方法、接口路径信息、请求头部header、请求数据body、请求cookie等。而接口对应的服务功能所在的服务器响应于该服务调用请求而返回的请求响应数据中也包含该接口的一些描述性信息,如接口是否被成功响应的状态码、接口响应时延、响应头部header、响应数据body、响应数据cookie等。所以,可以根据某一接口被调用过程中的通信数据(即接口通信数据)来获得接口的描述性信息(即接口描述信息)。基于此,电子设备可通过获取接口通信数据来生成接口描述信息。
38.考虑到通信网络中包含有多个服务,每个服务中可包含多个接口,这些接口对应的接口通信数据被共同记录在通信网络中的各网络节点设备中,即网络节点设备中记录的是多个节点通信数据融合在一起的服务通信数据。为了不改变网络节点设备的处理逻辑,电子设备在获得数据访问权限的情况下,从网络节点设备处获取通信数据时,其无法直接拉取到某一接口对应的接口通信数据,而是直接获得服务通信数据。后续再通过对该服务通信数据的解析来获得任意接口对应的接口通信数据。
39.上述过程中的接口名称是接口定义时确定的接口的全称,其可自定义,如由前端开发人员和后端开发人员共同协商确定;服务标识可以是服务的名称、简称、全局编号等能够唯一标识一个服务的信息;接口方法可以包括超文本传输协议(hypertexttransportprotocol,http)请求支持的方法,例如接口方法包括但不限于get、post、put、delete、head、options、patch和trace等方法。接口路径信息是表征接口的功能实现在服务中的位置的路径相关信息,例如可以包括接口统一资源标识符(uniformresourceidentifier,uri);请求头部header、请求数据body、请求cookie均是请求参数信息;响应头部header、响应数据body、响应数据cookie均是响应于请求而返回的响应参数信息;有关请求参数信息和响应参数信息的内容可参见http请求的协议内容。
40.在一些实施例中,从服务对应的负载均衡器和/或接口网关中获取服务通信数据。
41.具体地,根据上述说明,电子设备可从通信网络中的任一网络节点设备中获取服务通信数据。但是,为了获得更加全面的数据,本实施例中可以从汇总单个服务的同一接口的多次服务请求的接口通信数据的负载均衡器和/或接口网关中获取服务通信数据。例如,可以在负载均衡器或接口网关中增加服务通信数据上报的逻辑,电子设备接收负载均衡器或接口网关上报的数据即可。或者,电子设备主动向负载均衡器或接口网关发起数据获取请求,以从负载均衡器或接口网关中拉取服务通信数据。这里的负载均衡器可以是部署在网关服务器上的负载均衡网关,也可以是部署在非网关的服务器上的负载均衡服务器。
42.在一些实施例中,为了提高通信数据的获取效率,负载均衡器或接口网关可以将某一服务的某一接口相关的通信数据全部存储至消息队列中,而电子设备中可以设置一个数据获取服务,该数据获取服务从负载均衡器或接口网关中维护的消息队列中接收通信数据。
43.需要说明的是,为了均衡后续数据处理的准确性和处理效率,可以根据服务通信数据的数据量来设置合适的数据采样率,对负载均衡器和/或接口网关中记录的服务通信数据进行采样,并将采样所得的数据作为后续参与处理的服务通信数据。
44.为了进一步提高后续数据处理的处理效率和准确性,在获取服务通信数据后,还可以对该服务通信数据进行脏数据、不完整数据等的过滤处理。
45.s120、基于服务通信数据,确定服务包含的至少一个接口的接口描述信息。
46.具体地,根据上述说明,服务通信数据中记录了接口中包含的字段、字段值等信息。所以,电子设备可以按照接口描述信息中需求的数据内容,对服务通信数据进行数据解析、提取和整理等处理,以得到至少一个接口对应的接口描述信息。该至少一个接口可以是服务通信数据中涉及的全部接口,也可以是接口描述文档需求方设置的接口。
47.s130、基于各接口描述信息,生成服务对应的初始接口描述文档。
48.其中,初始接口描述文档是指从服务通信数据中直接得到的、按照默认数据格式进行存储的接口描述文档,其可包含至少一个服务对应的至少一个接口的接口描述信息。
49.具体地,经过上述处理,电子设备可得到至少一个接口的接口描述信息。然后,电子设备可按照服务的维度来整合各接口描述信息。即电子设备按照预先设置的接口描述文档的文档要求(如文档形式、文档类型等),将属于同一服务的多个接口描述信息进行合并,得到该服务对应的初始接口描述文档。这样,电子设备可得到各服务对应的初始接口描述文档。
50.为了提高文档查询效率,可以将初始接口描述文档存储为服务标识和初始接口描述文档的映射关系。
51.在一些实施例中,初始接口描述文档为idl接口描述文档。这是因为idl是一种中立语言,其可在不同语言编写的软件组件间进行通信。所以,idl接口描述文档可响应于不同接口提供方的个性化调用需求而快速反馈合适的接口描述文档。并且,idl接口描述文档属于代码形式的规范的接口描述文档,其能够为后续更加复杂的操作提供数据基础。
52.在一些实施例中,电子设备可采用迭代合并的方式来合并同一服务的接口描述信息。即对服务对应的历史接口描述文档和任一接口对应的接口描述信息进行合并,生成初始接口描述文档。
53.具体地,对于某一服务,电子设备中可以维护有该服务对应的初始接口描述文档,
每当电子设备得到该服务的一个新的接口描述信息时,电子设备中维护的初始接口描述文档可称为历史接口描述文档。然后,电子设备将得到的新的接口描述信息合并至历史接口描述文档中,得到新的初始接口描述文档。
54.在一些实施例中,在s130之后电子设备可接收接口文档获取请求;从初始接口描述文档中确定出第二服务标识对应的初始接口描述文档;基于文档类型和第二服务标识对应的初始接口描述文档,生成接口文档获取请求对应的目标接口描述文档。
55.其中,接口文档获取请求是需要接口描述文档的一方(如提供接口的后端提供方、基于接口描述文档进行前端开发的前端研发方等)发起的接口描述文档的获取请求。接口文档获取请求中至少包含其请求的接口所属的服务的服务标识(即第二服务标识)和文档类型。文档类型是描述文档编码方式的信息,例如可以是idl文件类型thrift、pb2或pb3等。
56.具体地,当接口相关方需要某一服务的某一个或某几个接口的接口描述信息时,其可以向电子设备发起接口文档获取请求。电子设备接收到该接口文档获取请求后,先根据接口文档获取请求中的第二服务标识,从上述服务标识与初始接口描述文档的映射关系中筛选出该第二服务标识对应的初始接口描述文档。应当理解的是,接口文档获取请求中还可包含能够唯一表征一个接口的接口标识。这样,电子设备可根据该接口标识对上述筛选出的初始接口描述文档进行二次筛选,得到第二服务标识和接口标识对应的初始接口描述文档。
57.然后,电子设备再将筛选出的初始接口描述文档的文档类型由默认数据格式转换为接口文档获取请求中的文档类型,得到满足接口相关方需求的初始接口描述文档,即目标接口描述文档。之后,电子设备将该目标接口描述文档作为对接口文档生成请求的响应数据反馈至接口相关方。这样可以快速地为接口相关方提供其需求的接口描述文档,提高接口描述文档的生成效率和获取效率。
58.本公开上述实施例提供的接口信息生成方法,能够获取服务被调用过程中生成的服务通信数据,并基于服务通信数据确定服务包含的至少一个接口的接口描述信息,进而基于各接口描述信息,生成服务对应的初始接口描述文档。实现了在接口上线被调用的过程中生成接口描述文档,无需开发人员手动维护接口描述文档,降低了接口描述文档的生成成本和维护成本,从而提高了接口描述文档的生成效率,同时避免了代码注释类的接口描述文档造成的接口描述信息的规范性差的问题,提高了接口描述文档的规范程度。
59.在一些实施例中,s120包括:基于服务通信数据,确定任一接口对应的接口通信数据;若任一接口对应的接口通信数据的数据属性信息达到数据处理条件,则对接口对应的多个接口通信数据进行字段聚合处理,生成接口对应的接口描述信息。
60.其中,数据处理条件是预先设置的、触发开始进行数据处理的条件,例如可以是数据量临界值、定时器等。数据属性信息是从某一属性维度对数据进行描述的信息,其与数据处理条件相对应。例如,数据处理条件是数据量临界值时,数据属性信息为数据量维度的信息;数据处理条件是定时器时,数据属性信息为数据获取时间维度的信息。
61.具体地,服务通信数据中一次服务调用请求对应的接口通信数据可能只包含接口中的某些字段和字段值等,那么,通过一条接口通信数据就无法获取该接口的全量字段,也就无法获得该接口的完整的接口描述信息。所以,对于服务通信数据中涉及的任一个接口,本实施例中可以从通信服务数据中提取该接口的多条接口通信数据,再对这些接口通信数
据进行字段整合,以得到该接口的完整的、无重复字段的接口描述信息。
62.具体实施时,电子设备先对其获得的服务通信数据进行分类,以确定出该服务通信数据中包含的每个接口对应的接口通信数据。然后,对于每个接口,电子设备对该接口的接口通信数据进行监测。当监测到某一接口的接口通信数据的数据属性信息达到数据处理条件时,便开始对该接口的这些接口通信数据进行字段去重、字段合并、字段统计等字段聚合处理,得到该接口对应的接口描述信息。
63.例如,数据处理条件是一百条的数据量阈值。那么,电子设备在监测到某一接口对应的接口通信数据达到一百条时,便对该一百条接口通信数据进行字段聚合处理,得到该一百条接口通信数据对应的接口描述信息。
64.之后,电子设备可将所得的接口描述信息与该接口对应的服务的初始接口描述文档再次进行聚合,以更新该初始接口描述文档中该接口的接口描述信息。这样的设置可降低数据处理频率,兼顾数据处理效率和接口描述信息的准确性。
65.在一些实施例中,上述基于服务通信数据,确定任一接口对应的接口通信数据包括:按照第一服务标识相同、接口方法相同和接口路径信息符合预设路径规律的方式,对通信服务数据进行接口划分,确定各接口对应的接口通信数据。
66.其中,第一服务标识是服务通信数据中包含的服务标识。预设路径规律是预先设定的、接口路径变化的规律。
67.具体地,根据上述说明,电子设备可以对服务通信数据进行分类,以拆分出每个接口对应的接口通信数据。考虑到接口基础信息中的服务标识、接口方法和接口路径信息可唯一标识一个接口,而接口路径信息具有一定的动态可变性,故本实施例中可预先确定出接口路径信息对应的预设路径规律。这样,电子设备可根据第一服务标识、接口方法和符合预设路径规律的接口路径信息的组合来识别同一接口的接口通信数据,进而对服务通信数据进行数据划分。这样的设置可确保同一接口对应的接口通信数据的全面性和准确性。
68.例如,电子设备可以先将服务通信数据中具有相同的第一服务标识和相同的接口方法的各接口通信数据划分为一大类。然后,对于每个大类中的接口通信数据,电子设备可以再将接口路径信息符合预设路径规律的各接口通信数据进一步划分为一小类。这样,同一个小类中的接口通信数据便对应于同一接口,而不同小类中的接口通信数据对应于不同的接口。
69.再如,电子设备可以先将服务通信数据中具有相同的第一服务标识、相同的接口方法和相同的接口路径信息的各接口通信数据划分为一小类。然后,电子设备再将接口路径信息符合预设路径规律的至少两个小类的接口通信数据合并为一个大类。这样,同一个大类中的接口通信数据便对应于同一接口,而不同大类中的接口通信数据对应于不同的接口。
70.在一些实施例中,为了进一步提高接口通信数据的访问效率,可将上述数据划分所得的各接口及其对应的接口通信数据存储为键值对结构,如map结构,且将各接口通信数据存储在redis数据库中。鉴于服务标识、接口方法和接口路径信息可唯一标识一个接口,存储接口通信数据时的键信息可设置为接口对应的第一服务标识、接口方法和目标接口路径信息的组合,值信息可设置为键信息对应的一类接口通信数据中的一条数据。这里的目标接口路径信息是符合预设路径规律的各接口路径信息中的一个。
71.在一些实施例中,上述对同一接口对应的多个接口通信数据进行字段聚合处理,生成该接口对应的接口描述信息包括:基于各接口通信数据,确定接口中包含的字段标识、每个字段标识对应的字段值类型以及每个字段标识对应的字段必要性标识;基于字段标识、字段值类型和字段必要性标识确定接口描述信息。
72.其中,字段值类型是指字段对应的字段值的数据类型,如整型int、字符串string等。字段必要性标识是表征一个字段为必要字段的标识性信息。
73.具体地,对于一个接口,电子设备从该接口对应的每条接口通信数据中提取该接口包含的字段标识(如字段名称),并对这些字段标识进行去重,而保留不重复的各字段标识。然后,针对该接口的每个保留的字段标识,电子设备从该接口对应的各接口通信数据中统计该字段标识对应的字段值的数据类型的类型占比,以及统计该字段标识在各接口通信数据中的出现频率。并且,电子设备将类型占比最大的数据类型确定为该字段标识的字段值类型。同时,电子设备判断出现频率是否满足一定的频率临界值(如1,即字段标识在每条接口通信数据中均出现)。如果判断结果为是,那么将该字段标识确定为必要字段,并为其设置字段必要性标识,如required;如果判断结果为否,那么将该字段标识确定为非必要字段,并为其设置字段非必要性标识,如optional。
74.按照上述过程可确定出每个接口中包含的字段标识、每个字段标识对应的字段值类型以及每个字段标识对应的字段必要性标识。之后,电子设备按照预先规定的数据组合形式,将每个接口的上述信息进行组合,便可得到每个接口对应的接口描述信息。
75.在一些实施例中,在获取服务通信数据之后,该接口信息生成方法还包括:基于服务通信数据生成服务对应的接口监控信息。
76.其中,接口监控信息用于表征接口的服务质量,如接口的通信质量、接口的重要性等。
77.具体地,相关技术中的接口管理工具主要是提供接口描述文档的生成和接口维护等功能,其不关注接口上线后的信息。所以,相关技术中的接口管理信息无法提供接口上线后的接口监控信息。如果接口相关方要了解接口监控信息,其需要从其他渠道对接口进行监控。这样,接口相关方就需要同时掌握接口开发工具、接口管理工具和接口监控工具等多种工具,无疑会增加接口相关方的工作量,且会降低接口维护效率和接口优化效率。
78.基于上述情况,本公开实施例在考虑到服务通信数据中包含接口是否被成功响应的状态码和接口响应时延等响应参数信息、以及接口对应的调用方信息(如应用程序名称、简称、编号等应用程序标识)和服务标识等信息的情况下,可以在提供接口描述文档的同时,利用获取的服务通信数据来获得接口监控信息,以简化接口相关方的工作,从而提高接口维护效率和接口优化效率。
79.在一示例中,接口监控信息可以是描述服务等级的服务级别(service level agreement,sla)数据。这样,上述基于服务通信数据生成服务对应的接口监控信息包括:对于服务中的任一接口,基于服务通信数据中接口对应的接口通信数据,对接口的请求结果进行统计,确定接口的请求成功率和请求时延。
80.具体地,对于服务通信数据中涉及的任一接口,电子设备对该接口对应的接口通信数据中的响应参数信息所包含的状态码和接口响应时延进行统计,便可得到接口粒度的请求成功率和请求时延。然后,电子设备按照服务和接口之间的对应关系,将上述接口粒度
的请求成功率和请求时延,合并为服务粒度的请求成功率和请求时延。这样,电子设备可以服务维度来展示接口粒度的请求成功率和请求时延。
81.在另一示例中,接口监控信息可以是网站可靠性工程(site reliability engineering,sre)的相关数据,如应用程序标识-服务标识/服务域名-接口标识的映射关系。这样,上述基于服务通信数据生成服务对应的接口监控信息包括:基于服务通信数据中的应用程序标识、服务标识和接口标识,构建目标映射关系;其中,目标映射关系用于记录应用程序、应用程序调用的目标服务以及应用程序调用的目标服务中的目标接口之间的对应关系。
82.具体地,在容灾演练等场景下,需要依赖应用程序和接口之间的映射关系进行降级演练。相关技术中只能获得应用程序和服务之间的映射关系以及服务与接口之间的映射关系,而无法获得应用程序及其依赖的具体接口之间的映射关系。基于此,本公开实施例中,可以对服务通信数据中包含的发起服务调用请求的应用程序标识、该服务调用请求中涉及的服务标识和接口标识进行统计,从而获得应用程序标识、应用程序依赖的服务(即目标服务)的服务标识、以及应用程序依赖的目标服务中的目标接口的接口标识之间的目标映射关系。该目标映射关系可应用于各种sre场景中,例如该目标映射关系可用于容灾演练场景中对目标映射关系中的重要接口进行标注,以优先保障重要接口的接口质量。
83.基于上述各实施例,本公开实施例还提供了如图2所示的另一种接口信息生成方法的流程示意图。在该实施例中,相关术语和步骤的解释可参见上述各实施例中的说明,在此不再赘述。
84.如图2所示,该接口信息生成方法具体包括如下步骤:
85.步骤a、电子设备从数据源21中的负载均衡器211和接口网关212中获取服务通信数据22。
86.步骤b、电子设备基于服务通信数据22执行生成初始接口描述文档的子流程23。
87.在该生成初始接口描述文档的子流程23中,电子设备具体执行如下步骤:
88.步骤b1、从服务通信数据22中确定任一接口对应的接口通信数据,并在任一接口对应的接口通信数据的数据属性信息达到数据处理条件时,对该接口对应的多个接口通信数据进行字段聚合处理,生成该接口对应的接口描述信息231。
89.步骤b2、对服务对应的历史接口描述文档和任一接口对应的接口描述信息231进行合并,生成初始接口描述文档232。
90.步骤c、电子设备还可以响应于接口相关方发送的接口文档获取请求,执行生成目标接口描述文档的子流程24。
91.在该生成目标接口描述文档的子流程24中,电子设备具体执行如下步骤:
92.步骤c1、接收接口相关方发送的接口文档获取请求,并从中解析出第二服务标识和文档类型241。
93.步骤c2、从初始接口描述文档232中确定出第二服务标识对应的初始接口描述文档,并基于文档类型和第二服务标识对应的初始接口描述文档,生成接口文档获取请求对应的目标接口描述文档242。
94.步骤d、电子设备还可以基于服务通信数据22执行生成接口监控信息的子流程25。
95.在该生成接口监控信息的子流程25中,电子设备具体执行如下步骤:
96.步骤d1、对服务通信数据22进行脏数据、不完整数据等的过滤处理,得到过滤后的服务通信数据251。
97.步骤d2、对过滤后的服务通信数据251进行相关数据统计,得到接口监控数据。
98.例如,对于服务中的任一接口,基于过滤后的服务通信数据251中接口对应的接口通信数据,对接口的请求结果进行统计,确定接口的请求成功率和请求时延,作为该接口的sla数据252。
99.又如,基于过滤后的服务通信数据251中的应用程序标识、服务标识和接口标识,构建目标映射关系,该目标映射关系用于记录应用程序、应用程序调用的目标服务以及应用程序调用的目标服务中的目标接口之间的对应关系,作为相应接口的sre数据253。
100.图3示出了本公开实施例提供的一种接口信息生成装置的结构示意图。如图3所示,该接口信息生成装置300可以包括:
101.服务通信数据获取模块310,用于获取服务通信数据;其中,服务通信数据为服务被调用过程中生成的数据;
102.接口描述信息确定模块320,用于基于服务通信数据,确定服务包含的至少一个接口的接口描述信息;
103.初始接口描述文档生成模块330,用于基于各接口描述信息,生成服务对应的初始接口描述文档。
104.本公开上述实施例提供的接口信息生成装置,能够获取服务被调用过程中生成的服务通信数据,并基于服务通信数据确定服务包含的至少一个接口的接口描述信息,进而基于各接口描述信息,生成服务对应的初始接口描述文档。实现了在接口上线被调用的过程中生成接口描述文档,无需开发人员手动维护接口描述文档,降低了接口描述文档的生成成本和维护成本,从而提高了接口描述文档的生成效率,同时避免了代码注释类的接口描述文档造成的接口描述信息的规范性差的问题,提高了接口描述文档的规范程度。
105.在一些实施例中,接口描述信息确定模块320包括:
106.接口通信数据确定子模块,用于基于服务通信数据,确定任一接口对应的接口通信数据;
107.接口描述信息生成子模块,用于若任一接口对应的接口通信数据的数据属性信息达到数据处理条件,则对接口对应的多个接口通信数据进行字段聚合处理,生成接口对应的接口描述信息。
108.在一些实施例中,初始接口描述文档生成模块330具体用于:
109.对服务对应的历史接口描述文档和任一接口对应的接口描述信息进行合并,生成初始接口描述文档。
110.在一些实施例中,接口通信数据确定子模块具体用于:
111.按照第一服务标识相同、接口方法相同和接口路径信息符合预设路径规律的方式,对通信服务数据进行接口划分,确定各接口对应的接口通信数据。
112.其中,接口通信数据的存储形式为键值对结构;
113.键值对结构中的键信息为接口通信数据中包含的第一服务标识、接口方法和目标接口路径信息的组合,键值对结构中的值信息为接口通信数据;其中,目标接口路径信息为符合预设路径规律的各接口路径信息中的一个。
114.在一些实施例中,接口描述信息生成子模块具体用于:
115.基于各接口通信数据,确定接口中包含的字段标识、每个字段标识对应的字段值类型以及每个字段标识对应的字段必要性标识;
116.基于字段标识、字段值类型和字段必要性标识确定接口描述信息。
117.在一些实施例中,服务通信数据获取模块310具体用于:
118.从服务对应的负载均衡器和/或接口网关中获取服务通信数据。
119.在一些实施例中,接口信息生成装置300还包括目标接口描述文档生成模块,用于:
120.在基于各接口描述信息,生成服务对应的初始接口描述文档之后,接收接口文档获取请求;其中,接口文档获取请求包含第二服务标识和文档类型;
121.从初始接口描述文档中确定出第二服务标识对应的初始接口描述文档;
122.基于文档类型和第二服务标识对应的初始接口描述文档,生成接口文档获取请求对应的目标接口描述文档。
123.在一些实施例中,接口信息生成装置300还包括接口监控信息生成模块,用于:
124.在获取服务通信数据之后,基于服务通信数据,生成服务对应的接口监控信息;其中,接口监控信息用于表征接口的服务质量。
125.进一步地,接口监控信息生成模块具体用于:
126.对于服务中的任一接口,基于服务通信数据中接口对应的接口通信数据,对接口的请求结果进行统计,确定接口的请求成功率和请求时延;
127.和/或,基于服务通信数据中的应用程序标识、服务标识和接口标识,构建目标映射关系;其中,目标映射关系用于记录应用程序、应用程序调用的目标服务以及应用程序调用的目标服务中的目标接口之间的对应关系。
128.本发明实施例所提供的接口信息生成装置可执行本发明任意实施例所提供的接口信息生成方法,具备执行方法相应的功能模块和有益效果。
129.值得注意的是,上述接口信息生成装置的实施例中,所包括的各个模块和子模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块/子模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
130.本公开实施例还提供了一种电子设备,该电子设备可以包括处理器和存储器,存储器可以用于存储可执行指令。其中,处理器可以用于从存储器中读取可执行指令,并执行可执行指令以实现上述实施例中的接口信息生成方法。
131.图4示出了本公开实施例提供的一种电子设备的结构示意图。
132.如图4所示,该电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储装置408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram 403中,还存储有信息处理设备400操作所需的各种程序和数据。处理装置401、rom 402以及ram 403通过总线404彼此相连。输入/输出接口(i/o接口)405也连接至总线404。
133.通常,以下装置可以连接至i/o接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(lcd)、扬声器、振
动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。
134.需要说明的是,图4示出的电子设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。即虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
135.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从rom 402被安装。在该计算机程序被处理装置401执行时,执行本公开任意实施例的接口信息生成方法中限定的上述功能。
136.本公开实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开任意实施例中的接口信息生成方法。
137.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
138.在一些实施方式中,客户端、服务器可以利用诸如http之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
139.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
140.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行本公开任意实施例所说明的接口信息生成方法的步骤。
141.在本公开实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本
公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
142.附图中的流程图和框图,图示了按照本公开各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
143.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
144.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
145.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
146.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
147.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实
施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
148.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

技术特征:
1.一种接口信息生成方法,其特征在于,包括:获取服务通信数据;其中,所述服务通信数据为服务被调用过程中生成的数据;基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息;基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。2.根据权利要求1所述的方法,其特征在于,所述基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息包括:基于所述服务通信数据,确定任一所述接口对应的接口通信数据;若任一所述接口对应的所述接口通信数据的数据属性信息达到数据处理条件,则对所述接口对应的多个所述接口通信数据进行字段聚合处理,生成所述接口对应的所述接口描述信息。3.根据权利要求1所述的方法,其特征在于,所述基于各所述接口描述信息,生成所述服务对应的初始接口描述文档包括:对所述服务对应的历史接口描述文档和任一所述接口对应的所述接口描述信息进行合并,生成所述初始接口描述文档。4.根据权利要求2所述的方法,其特征在于,所述基于所述服务通信数据,确定任一所述接口对应的接口通信数据包括:按照第一服务标识相同、接口方法相同和接口路径信息符合预设路径规律的方式,对所述通信服务数据进行接口划分,确定各所述接口对应的所述接口通信数据。5.根据权利要求4所述的方法,其特征在于,所述接口通信数据的存储形式为键值对结构;所述键值对结构中的键信息为所述接口通信数据中包含的所述第一服务标识、所述接口方法和目标接口路径信息的组合,所述键值对结构中的值信息为所述接口通信数据;其中,所述目标接口路径信息为符合所述预设路径规律的各所述接口路径信息中的一个。6.根据权利要求2所述的方法,其特征在于,所述对所述接口对应的多个所述接口通信数据进行字段聚合处理,生成所述接口对应的所述接口描述信息包括:基于各所述接口通信数据,确定所述接口中包含的字段标识、每个所述字段标识对应的字段值类型以及每个所述字段标识对应的字段必要性标识;基于所述字段标识、所述字段值类型和所述字段必要性标识确定所述接口描述信息。7.根据权利要求1所述的方法,其特征在于,所述获取服务通信数据包括:从所述服务对应的负载均衡器和/或接口网关中获取所述服务通信数据。8.根据权利要求1所述的方法,其特征在于,在所述基于各所述接口描述信息,生成所述服务对应的初始接口描述文档之后,所述方法还包括:接收接口文档获取请求;其中,所述接口文档获取请求包含第二服务标识和文档类型;从所述初始接口描述文档中确定出所述第二服务标识对应的所述初始接口描述文档;基于所述文档类型和所述第二服务标识对应的所述初始接口描述文档,生成所述接口文档获取请求对应的目标接口描述文档。9.根据权利要求1所述的方法,其特征在于,在所述获取服务通信数据之后,所述方法还包括:基于所述服务通信数据,生成所述服务对应的接口监控信息;其中,所述接口监控信息
用于表征所述接口的服务质量。10.根据权利要求9所述的方法,其特征在于,所述基于所述服务通信数据,生成所述服务对应的接口监控信息包括:对于所述服务中的任一所述接口,基于所述服务通信数据中所述接口对应的接口通信数据,对所述接口的请求结果进行统计,确定所述接口的请求成功率和请求时延;和/或,基于所述服务通信数据中的应用程序标识、服务标识和接口标识,构建目标映射关系;其中,所述目标映射关系用于记录应用程序、所述应用程序调用的目标服务以及所述应用程序调用的所述目标服务中的目标接口之间的对应关系。11.一种接口信息生成装置,其特征在于,包括:服务通信数据获取模块,用于获取服务通信数据;其中,所述服务通信数据为服务被调用过程中生成的数据;接口描述信息确定模块,用于基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息;初始接口描述文档生成模块,用于基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。12.一种电子设备,其特征在于,包括:处理器;存储器,用于存储可执行指令;其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现上述权利要求1-10中任一项所述的接口信息生成方法。13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-10中任一项所述的接口信息生成方法。

技术总结
本公开涉及一种接口信息生成方法、装置、设备和存储介质。该方法包括:获取服务通信数据;其中,所述服务通信数据为服务被调用过程中生成的数据;基于所述服务通信数据,确定所述服务包含的至少一个接口的接口描述信息;基于各所述接口描述信息,生成所述服务对应的初始接口描述文档。根据本公开实施例,实现了在接口上线被调用的过程中自动生成接口描述文档,降低了接口描述文档的生成成本,同时提高了接口描述文档的生成效率。了接口描述文档的生成效率。了接口描述文档的生成效率。


技术研发人员:郭鲲鹏
受保护的技术使用者:北京字节跳动网络技术有限公司
技术研发日:2022.04.07
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-13780.html

最新回复(0)