CN114327611A - 接口描述文档的生成方法、装置、计算机设备及存储介质 - Google Patents
接口描述文档的生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114327611A CN114327611A CN202111640788.9A CN202111640788A CN114327611A CN 114327611 A CN114327611 A CN 114327611A CN 202111640788 A CN202111640788 A CN 202111640788A CN 114327611 A CN114327611 A CN 114327611A
- Authority
- CN
- China
- Prior art keywords
- interface
- information corresponding
- remark information
- code
- description document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种接口描述文档的生成方法、装置、计算机设备及存储介质,其中,该方法包括:获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种接口描述文档的生成方法、装置、计算机设备及存储介质。
背景技术
接口描述文档可以描述目标接口的接口功能,通过接口描述文档中的内容可以帮助开发人员快速了解目标接口的相关属性,因此接口描述文档是开发人员在进行程序开发时所不可或缺的,但人工编写接口描述文档需要耗费大量人力。
相关技术中,往往通过扫描接口代码的备注,并根据扫描得到的备注自动生成接口文档,以实现接口描述文档的自动生成,这样会增加开发人员的备注撰写量,从而降低程序开发效率。
发明内容
本公开实施例至少提供一种接口描述文档的生成方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种接口描述文档的生成方法,包括:
获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
这样,通过对目标接口对应的接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。这样,由于在解析过程中加入了对目标接口中各结构体之间层间关系的解析,使得开发人员在进行备注撰写时无需撰写与各结构体之间的层级关系相关的备注,从而可以减少开发人员的备注撰写量,提高程序开发效率。
一种可能的实施方式中,所述对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息,包括:
基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系;以及,基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
这样,通过分别采用不同的算法对所述接口代码中各结构体之间的层级关系,以及确定各结构体分别对应的备注信息进行解析,可以更高效的得到用于生成所述接口描述文档的所述层级关系和各结构体分别对应的备注信息。
一种可能的实施方式中,所述基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系,包括:
针对任一所述结构体,在检测到该结构体的结构类型为包含子结构的第一结构类型的情况下,对该结构体所包含的子结构进行递归解析,确定该结构体中各子结构之间的层级关系。
一种可能的实施方式中,所述方法还包括:
针对任一所述结构体,在检测到该结构体的结构类型为不包含子结构的第二结构类型的情况下,解析该结构体中的所有字段,确定该结构体中各字段分别对应的属性值。
一种可能的实施方式中,所述基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息,包括:
基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
这样,通过基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,即使相同的结构体被重复调用,但其在接口代码中的位置是唯一的,从而可以确保最终各结构体和备注信息的对应关系是正确的,同时确保了最终生成的接口描述文档的准确性。
一种可能的实施方式中,所述基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档,包括:
获取用于生成所述接口描述文档的接口补充信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档。
这样,由于解析了各结构体之间的层级关系,并在生成所述接口描述文档时使用层级关系进行生成,使得在相同子结构体被多次调用时仅需撰写一次备注即可,后续生成接口文档时可以自动根据层级关系将被多次调用的子结构体的备注信息进行复用,从而使得开发人员在对所述目标接口的接口描述文档进行备注更新时,无需对相同的子结构体的备注信息重复进行更新,只需更新一个子结构体的备注信息即可。
一种可能的实施方式中,所述方法还包括根据以下步骤确定所述目标接口对应的封装规则:
基于所述目标接口的请求类型,确定用于生成与所述目标接口对应的接口描述文档的封装规则;
所述基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档,包括:
基于所述封装规则对各结构体之间的层级关系、各结构体分别对应的备注信息以及所述接口补充信息进行封装,生成所述目标接口对应的接口描述文档。
第二方面,本公开实施例还提供一种接口描述文档的生成装置,包括:
获取模块,用于获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
解析模块,用于对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
生成模块,用于基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
一种可能的实施方式中,所述解析模块,在对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息时,用于:
基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系;以及,基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
一种可能的实施方式中,所述解析模块,在基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系时,用于:
针对任一所述结构体,在检测到该结构体的结构类型为包含子结构的第一结构类型的情况下,对该结构体所包含的子结构进行递归解析,确定该结构体中各子结构之间的层级关系。
一种可能的实施方式中,所述解析模块还用于:
针对任一所述结构体,在检测到该结构体的结构类型为不包含子结构的第二结构类型的情况下,解析该结构体中的所有字段,确定该结构体中各字段分别对应的属性值。
一种可能的实施方式中,所述解析模块,在基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息时,用于:
基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
一种可能的实施方式中,所述生成模块,在基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档时,用于:
获取用于生成所述接口描述文档的接口补充信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档。
一种可能的实施方式中,所述生成模块还用于根据以下步骤确定所述目标接口对应的封装规则:
基于所述目标接口的请求类型,确定用于生成与所述目标接口对应的接口描述文档的封装规则;
所述生成模块,在基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档时,用于:
基于所述封装规则对各结构体之间的层级关系、各结构体分别对应的备注信息以及所述接口补充信息进行封装,生成所述目标接口对应的接口描述文档。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述接口描述文档的生成装置、计算机设备及存储介质的效果描述参见上述接口描述文档的生成方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种接口描述文档的生成方法的流程图;
图2示出了本公开实施例所提供的接口描述文档的生成方法中,生成目标接口对应的接口描述文档的具体方法的流程图;
图3示出了本公开实施例所提供的一种接口描述文档的生成装置的示意图;
图4示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,相关技术中,往往通过扫描接口代码的备注,并根据扫描得到的备注自动生成接口文档,以实现接口描述文档的自动生成,这样会增加开发人员的备注撰写量,从而降低程序开发效率。
基于上述研究,本公开提供了一种接口描述文档的生成方法、装置、计算机设备及存储介质,通过对目标接口对应的接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。这样,由于在解析过程中加入了对目标接口中各结构体之间层间关系的解析,使得开发人员在进行备注撰写时无需撰写与各结构体之间的层级关系相关的备注,从而可以减少开发人员的备注撰写量,提高程序开发效率。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种接口描述文档的生成方法进行详细介绍,本公开实施例所提供的接口描述文档的生成方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端等。在一些可能的实现方式中,该接口描述文档的生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的接口描述文档的生成方法的流程图,所述方法包括S101~S103,其中:
S101:获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息。
S102:对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息。
S103:基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
以下是对上述步骤的详细介绍。
针对S101,所述接口代码对应的备注信息可以是针对所述接口代码中各结构体撰写的备注信息,或者针对所述接口代码中各函数撰写的备注信息,其中,所述结构体是由一批数据组合而成的结构型数据(即结构型的代码段落),所述函数可以包含于所述结构体中,用于定义所述结构体的功能等;或者,所述函数也可以单独存在于所述目标接口代码中,用于定义所述目标接口的路由信息等表征所述目标接口的接口属性的信息。
具体的,所述接口文件中可以包含多个目标接口分别对应的接口代码,以及各目标接口的接口代码分别对应的备注信息,所述备注信息可以用于描述所述接口代码的功能,从而可以提高所述接口代码的代码可读性。
示例性的,接口文件A中可以包含目标接口1、目标接口2、目标接口3分别对应的接口代码,以及所述各目标接口的接口代码分别对应的备注信息,包括针对目标接口中结构体1的备注可以是“//A模块定义,该函数的功能为XX”,表示结构体1对应的功能模块为“A模块”,功能为“XX”。
S102:对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息。
这里,所述层级关系可以包含各结构体之间的调用关系,比如结构体A调用了结构体B,则所述层级关系位为结构体B为结构体A的子结构。
示例性的,所述结构体的代码可以为:
具体的,上述结构体的代码定义了结构体“TestA”的ID为“uint”,Name为“string”,子结构为结构体“TestB”,通过对所述接口文件进行解析,即可确定结构体“TestA”与结构体“TestB”之间的调用关系。
一种可能的实施方式中,在对所述接口文件进行解析时,可以基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系;以及,基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
具体的,在基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系时,根据结构体的结构类型的类型不同,可以有以下解析方式:
方式1、
针对任一所述结构体,在检测到该结构体的结构类型为包含子结构的第一结构类型的情况下,对该结构体所包含的子结构进行递归解析,确定该结构体中各子结构之间的层级关系。
这里,所述第一结构类型可以是指针结构或者列表结构等,所述递归解析表示按照相同的解析方式对该结构体所包含的子结构进行解析,直至完成对该结构体所包含的所有接口代码的解析过程。
示例性的,以结构体A的子结构为结构体B,所述结构体B的子结构为结构体C为例,通过对所述结构体A进行解析,可以确定所述结构体A所包含的结构体为结构体B,采用相同的解析方式对所述结构B继续进行解析,可以确定所述结构体B所包含的结构体为结构体C,从而可以完成对结构体A中所包含的所有接口代码的解析过程,得到所述结构体A中的各结构体之间的层级关系。
方式2、
针对任一所述结构体,在检测到该结构体的结构类型为不包含子结构的第二结构类型的情况下,解析该结构体中的所有字段,确定该结构体中各字段分别对应的属性值。
这里,所述属性值可以是字段类型、必要性等属性对应的属性值,在检测到该结构体的结构类型不为所述第一结构类型的情况下,可以对该结构体中的所有字段进行后序遍历,确定出该结构体中各字段分别对应的属性值。
承接上例,在得到所述结构体A中的各结构体之间的层级关系之后,由于所述结构体C的结构类型为不包含子结构的第二结构类型,可以对所述结构体C中的所有字段进行后序遍历,确定结构体C中各字段分别对应的属性值为“ID为uint,Name为string”。
实际应用中,开发人员在进行接口程序开发时,可以将不同的结构体分别对应的接口代码存储在接口文件中的不同文件位置处,以便于对各结构体单独进行开发。
一种可能的实施方式中,在基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析时,可以基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
这里,所述代码位置信息用于表征各结构体在所述接口代码中的位置,由于各结构体在所述接口代码中的位置均是唯一的,因此通过所述代码位置信息即可确定出所述接口代码中的任一结构体,从而可以按照各结构体分别对应的代码位置信息和所述广度优先算法,确定各结构体分别对应的备注信息。
这样,通过基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,即使相同的结构体被重复调用,但其在接口代码中的位置是唯一的,从而可以确保最终各结构体和备注信息的对应关系是正确的,同时确保了最终生成的接口描述文档的准确性。
进一步的,通过分别采用不同的算法对所述接口代码中各结构体之间的层级关系,以及确定各结构体分别对应的备注信息进行解析,可以更高效的得到用于生成所述接口描述文档的所述层级关系和各结构体分别对应的备注信息。
S103:基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
这里,所述封装规则用于对各结构体之间的层级关系和各结构体分别对应的备注信息进行封装,生成与所述目标接口对应的接口描述文档。
一种可能的实施方式中,可以基于所述目标接口的请求类型,确定用于生成与所述目标接口对应的接口描述文档的封装规则。
具体的,所述接口代码中包含有接口定义代码和结构体(或者还可以包含其他的函数),所述接口定义代码中包含请求类型、请求结构、返回结构等内容,所述请求类型用于表征调用目标接口时的请求的类型,例如Go语言中的GET请求和POST请求;所述请求结构用于表征调用目标接口时的请求的格式;所述返回结构用于表征调用目标接口后,接收到所述目标接口返回的返回数据的格式;通过对所述接口定义代码进行解析,即可确定出所述目标接口的请求类型,由于不同的请求类型在请求调用接口时所使用的参数可以不同(接口本身设置的结构体和函数也可以不同),因此不同的请求类型可以对应不同的封装规则。
一种可能的实施方式中,如图2所示,可以通过以下步骤生成目标接口对应的接口描述文档:
S201:获取用于生成所述接口描述文档的接口补充信息。
这里,所述接口补充信息包括所述目标接口的路由信息,例如表示目标接口的路由地址所处分组的路由分组信息等。
具体的,可以通过对所述接口定义代码进行解析,获取用于生成所述目标接口的接口描述文档的接口补充信息,通过获取所述接口补充信息,可以使得最终生成的接口描述文档描述的接口内容更为丰富。
进一步的,由于所述接口文件中可能包含多个目标接口分别对应的接口代码,因此在获取用于生成所述接口描述文档的接口补充信息之后,可以将所述接口补充信息与所述目标接口中的结构体进行绑定,以确定所述目标接口与所述接口补充信息的关联关系,从而可以确保最终生成的接口描述文档内容的正确性和完整性。
实际应用中,根据上述S102实时解析得到的所述接口代码中各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口中的结构体绑定的接口补充信息,可以临时存储在存储模块(比如只读存储器)中,从而可以在解析完成后基于目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
S202:基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档。
这里,在生成与所述目标接口对应的接口描述文档时,可以基于所述封装规则对各结构体之间的层级关系、各结构体分别对应的备注信息以及所述接口补充信息进行封装,生成所述目标接口对应的接口描述文档。
具体的,在基于所述封装规则进行封装时,可以根据各结构体之间的层级关系,依次将各结构体分别对应的备注信息、各字段分别对应的属性值、所述接口补充信息,按照所述封装规则对应的映射方式,映射到与所述封装规则对应的接口描述文档模板中,从而得到所述目标接口对应的接口描述文档。
这样,由于解析了各结构体之间的层级关系,并在生成所述接口描述文档时使用层级关系进行生成,使得在相同子结构体被多次调用时仅需撰写一次备注即可,后续生成接口文档时可以自动根据层级关系将被多次调用的子结构体的备注信息进行复用,从而使得开发人员在对所述目标接口的接口描述文档进行备注更新时,无需对相同的子结构体的备注信息重复进行更新,只需更新一个子结构体的备注信息即可。
进一步的,在生成所述目标接口对应的接口描述文档之后,还可以将所述目标接口对应的接口描述文档发送至与所述目标接口对应的目标服务器中,以便所述目标服务器后续响应接口描述文档的获取请求,将所述目标接口对应的接口描述文档发送至获取请求发送方,进而展示所述目标接口对应的接口描述文档,以满足所述获取请求发送方的查看请求。
本公开实施例提供的接口描述文档的生成方法,通过对目标接口对应的接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。这样,由于在解析过程中加入了对目标接口中各结构体之间层间关系的解析,使得开发人员在进行备注撰写时无需撰写与各结构体之间的层级关系相关的备注,从而可以减少开发人员的备注撰写量,提高程序开发效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与接口描述文档的生成方法对应的接口描述文档的生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述接口描述文档的生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种接口描述文档的生成装置的架构示意图,所述装置包括:获取模块301、解析模块302、生成模块303;其中,
获取模块301,用于获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
解析模块302,用于对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
生成模块303,用于基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
一种可能的实施方式中,所述解析模块302,在对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息时,用于:
基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系;以及,基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
一种可能的实施方式中,所述解析模块302,在基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系时,用于:
针对任一所述结构体,在检测到该结构体的结构类型为包含子结构的第一结构类型的情况下,对该结构体所包含的子结构进行递归解析,确定该结构体中各子结构之间的层级关系。
一种可能的实施方式中,所述解析模块302还用于:
针对任一所述结构体,在检测到该结构体的结构类型为不包含子结构的第二结构类型的情况下,解析该结构体中的所有字段,确定该结构体中各字段分别对应的属性值。
一种可能的实施方式中,所述解析模块302,在基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息时,用于:
基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
一种可能的实施方式中,所述生成模块303,在基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档时,用于:
获取用于生成所述接口描述文档的接口补充信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档。
一种可能的实施方式中,所述生成模块303还用于根据以下步骤确定所述目标接口对应的封装规则:
基于所述目标接口的请求类型,确定用于生成与所述目标接口对应的接口描述文档的封装规则;
所述生成模块303,在基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档时,用于:
基于所述封装规则对各结构体之间的层级关系、各结构体分别对应的备注信息以及所述接口补充信息进行封装,生成所述目标接口对应的接口描述文档。
本公开实施例提供的接口描述文档的生成装置,通过对目标接口对应的接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。这样,由于在解析过程中加入了对目标接口中各结构体之间层间关系的解析,使得开发人员在进行备注撰写时无需撰写与各结构体之间的层级关系相关的备注,从而可以减少开发人员的备注撰写量,提高程序开发效率。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当计算机设备400运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:
获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的接口描述文档的生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的接口描述文档的生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种接口描述文档的生成方法,其特征在于,包括:
获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
2.根据权利要求1所述的方法,其特征在于,所述对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息,包括:
基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系;以及,基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
3.根据权利要求2所述的方法,其特征在于,所述基于深度优先算法对所述接口代码进行解析,确定所述接口代码中各结构体之间的层级关系,包括:
针对任一所述结构体,在检测到该结构体的结构类型为包含子结构的第一结构类型的情况下,对该结构体所包含的子结构进行递归解析,确定该结构体中各子结构之间的层级关系。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
针对任一所述结构体,在检测到该结构体的结构类型为不包含子结构的第二结构类型的情况下,解析该结构体中的所有字段,确定该结构体中各字段分别对应的属性值。
5.根据权利要求2~4任一所述的方法,其特征在于,所述基于广度优先算法对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息,包括:
基于广度优先算法和各结构体分别对应的代码位置信息,对所述接口代码和所述接口代码对应的备注信息进行解析,确定各结构体分别对应的备注信息。
6.根据权利要求1~5任一所述的方法,其特征在于,所述基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档,包括:
获取用于生成所述接口描述文档的接口补充信息;
基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括根据以下步骤确定所述目标接口对应的封装规则:
基于所述目标接口的请求类型,确定用于生成与所述目标接口对应的接口描述文档的封装规则;
所述基于各结构体之间的层级关系、各结构体分别对应的备注信息、所述目标接口对应的封装规则以及所述接口补充信息,生成与所述目标接口对应的接口描述文档,包括:
基于所述封装规则对各结构体之间的层级关系、各结构体分别对应的备注信息以及所述接口补充信息进行封装,生成所述目标接口对应的接口描述文档。
8.一种接口描述文档的生成装置,其特征在于,包括:
获取模块,用于获取目标接口对应的接口文件,其中,所述接口文件中包含所述目标接口对应的接口代码和所述接口代码对应的备注信息;
解析模块,用于对所述接口文件进行解析,确定所述接口代码中各结构体之间的层级关系,以及各结构体分别对应的备注信息;
生成模块,用于基于各结构体之间的层级关系、各结构体分别对应的备注信息以及与所述目标接口对应的封装规则,生成与所述目标接口对应的接口描述文档。
9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的接口描述文档的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的接口描述文档的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640788.9A CN114327611A (zh) | 2021-12-29 | 2021-12-29 | 接口描述文档的生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111640788.9A CN114327611A (zh) | 2021-12-29 | 2021-12-29 | 接口描述文档的生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327611A true CN114327611A (zh) | 2022-04-12 |
Family
ID=81016510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111640788.9A Pending CN114327611A (zh) | 2021-12-29 | 2021-12-29 | 接口描述文档的生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327611A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114840295A (zh) * | 2022-05-10 | 2022-08-02 | 网易(杭州)网络有限公司 | 一种信息展示方法、展示装置、设备和介质 |
-
2021
- 2021-12-29 CN CN202111640788.9A patent/CN114327611A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114840295A (zh) * | 2022-05-10 | 2022-08-02 | 网易(杭州)网络有限公司 | 一种信息展示方法、展示装置、设备和介质 |
CN114840295B (zh) * | 2022-05-10 | 2023-09-15 | 网易(杭州)网络有限公司 | 一种信息展示方法、展示装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579344B2 (en) | Converting visual diagrams into code | |
US9274761B1 (en) | Dual programming interface | |
US11106906B2 (en) | Systems and methods for information extraction from text documents with spatial context | |
WO2019169725A1 (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
CN111722839A (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
CN109710220B (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN113018870A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN112187713A (zh) | 报文转换的方法、装置、计算机设备和存储介质 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
CN116841536A (zh) | 一种组件引用关系重构方法、装置、系统及存储介质 | |
CN112306486B (zh) | 一种界面生成方法、装置、服务器及存储介质 | |
CN114327611A (zh) | 接口描述文档的生成方法、装置、计算机设备及存储介质 | |
CN111142863A (zh) | 一种页面生成的方法及装置 | |
CN112711414B (zh) | 一种表单界面适配展现方法、装置及存储介质 | |
CN113778961A (zh) | 一种cim模型数据的生产管理方法、装置及系统 | |
US20210406257A1 (en) | Provenance analysis systems and methods | |
CN112052157A (zh) | 测试报文的构造方法、装置及系统 | |
CN113867700B (zh) | 模型构建方法、展示平台、服务器及存储介质 | |
CN116414689A (zh) | 一种基于反射机制的接口参数校验方法及系统 | |
CN115629763A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
CN113254455B (zh) | 数据库的动态配置方法、装置、计算机设备及存储介质 | |
CN115543324A (zh) | 交互界面的生成方法、装置、设备及介质 | |
CN111831277B (zh) | 虚拟数据生成方法、系统、设备及计算机可读存储介质 | |
CN114296726A (zh) | 一种代码生成方法、装置、计算机设备和存储介质 | |
CN112764763A (zh) | 一种代码转换方法、系统、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |