CN113296785A - 文档生成方法、系统、设备及可读存储介质 - Google Patents
文档生成方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113296785A CN113296785A CN202110567072.4A CN202110567072A CN113296785A CN 113296785 A CN113296785 A CN 113296785A CN 202110567072 A CN202110567072 A CN 202110567072A CN 113296785 A CN113296785 A CN 113296785A
- Authority
- CN
- China
- Prior art keywords
- application program
- program interface
- api
- information corresponding
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000011161 development Methods 0.000 claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种文档生成方法,包括:获取预设开发框架中的处理器类;通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成所述应用程序接口的注解集及数据集;通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,并将提取出的各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息;将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。本发明实施例使开源产品能够适配使用现有的开发框架进行应用程序接口加载管理,同时正确生成对应的应用程序接口文档。
Description
技术领域
本发明涉及软件开发领域,具体涉及一种文档生成方法、系统、设备及可读存储介质。
背景技术
应用程序接口(Application Programming Interface,API)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。
API文档是一个关于API的技术内容交付文件,包含如何有效地使用和集成API的说明。它是一个简明的参考手册,包含了使用API所需的所有信息,详细介绍了函数、类、返回类型、参数等。
传统的Swagger API文档生成方法可以是人工进行Swagger API文档的编写,或者基于SpringMVC3.1之后的版本所对应的系统进行开发生成,其中,Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。
然而,针对上述做法,发明人发现,传统的Swagger API文档生成方法由于SpringMVC3.1之后的版本对整个内存对象做了重大变更,与之前的版本差异很大,导致开源产品均无法适配使用HandlerMapping接口的实现类,比如类DefaultAnnotationHandlerMapping,进行API加载管理,使系统无法正确生成对应的Swagger API文档。
发明内容
本发明的目的在于提供一种文档生成方法、系统、计算机设备及可读存储介质,用于解决现有技术中基于SpringMVC3.1之后的版本所对应的系统进行开发时,开源产品均无法适配使用HandlerMapping接口的实现类进行API加载管理,使系统无法正确生成对应的Swagger API文档的缺陷。
根据本发明的一个方面,提供了一种文档生成方法,该方法包括如下步骤:
获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口;
通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息;
通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息;
将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息;
将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
可选地,所述应用程序接口解析器包括第一应用程序接口解析器,所述第一应用程序接口信息包括第一目标接口信息,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息,包括:
通过所述第一应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@ApiOperation注解信息,以提取出各个所述应用程序接口对应的消费报文格式类型及返回报文类型,得到各个所述应用程序接口的第一目标接口信息,其中,所述第一应用程序接口解析器用于解析所述应用程序接口对应的注解信息中的请求报文类型,所述@ApiOperation注解信息用于包括所述应用程序接口的接口说明、接口请求方式及接口返回参数类型。
可选地,所述应用程序接口解析器还包括第二应用程序接口解析器,所述第一应用程序接口信息还包括第二目标接口信息,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息,还包括:
通过所述第二应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@RequestMapping注解信息,以提取出各个所述应用程序接口对应的请求路径,得到各个所述应用程序接口对应的第二目标接口信息,其中,所述第二应用程序接口解析器用于解析所述应用程序接口的请求路径,所述@RequestMapping注解信息用于包括请求路径映射的操作。
可选地,所述应用程序接口解析器还包括第三应用程序接口解析器,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第二应用程序接口信息,还包括:
通过所述第三应用程序接口解析器解析各个所述应用程序接口对应的数据信息,以提取出各个所述应用程序接口的报文及返回报文,得到各个所述应用程序接口对应的第二应用程序接口信息,其中,所述第三应用程序接口解析器用于解析所述应用程序接口的报文。
可选地,所述应用程序接口解析器还包括第四应用程序接口解析器,所述方法还包括:
通过所述第四应用程序接口解析器解析各个所述应用程序接口中的预设标签,以将所述预设标签转换成通用标签,所述通用标签用于检查所述应用程序接口请求之间传递的参数的属性。
可选地,所述将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息,包括:
将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
可选地,所述文档生成方法还包括:
将各个所述应用程序接口对应的目标接口信息上传至区块链中。
为了实现上述目的,本发明还提供一种文档生成系统,该系统具体包括以下组成部分:
获取模块,用于获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口;
第一解析模块,用于通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息;
第二解析模块,用于通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息;
组合模块,用于将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息;
生成模块,用于将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的文档生成方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的文档生成方法的步骤。
本发明实施例提供的文档生成方法,通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成应用程序接口的注解集及数据集。对注解集中的注解信息及数据集中的数据信息进行解析,并将解析出来的第一应用程序接口信息及第二应用程序接口信息进行组合,按照预设格式进行序列化,生成应用程序接口文档。本发明实施例使开源产品能够适配使用现有的开发框架进行应用程序接口加载管理,同时正确生成对应的应用程序接口文档。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的文档生成方法的一种可选的步骤流程示意图;
图2为本发明实施例提供的文档生成系统的一种可选的程序模块示意图;
图3为本发明实施例提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
这里将详细地对示例性发明实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性发明实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。
在本发明使用的术语是仅仅出于描述特定发明实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。基于本发明中的发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他发明实施例,都属于本发明保护的范围。
下面结合附图对本发明实施例进行说明。
实施例一
参阅图1,示出了本发明实施例提供的一种文档生成方法的步骤流程示意图。可以理解,本发明实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,所述计算机设备可以包括诸如智能手机、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)等移动终端,以及诸如台式计算机等固定终端。具体如下:
步骤S100,获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口。
示例性的,获取基于Spring MVC3.1之前的版本进行开发的开发框架中所有的类进行扫描,得到处理器类,其中,所述开发框架可以包括框架org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,所述处理器类可以包括类handlerMapper。
需要说明的是,Spring MVC是一种web层MVC框架且属于Spring的一个模块,拥有Spring的特性,其中,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架提供了构建Web应用程序的全功能MVC模块。而且Spring框架是高度可配置的,包含多种视图技术。Spring的MVC框架主要由前置控制器DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
步骤S200,通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息。
示例性的,通过使用Spring MVC框架中预设的方法解析器对所述类handlerMapper中的方法handler进行解析,并提取出所述方法handler中的各个API的注解信息及数据信息,生成注解集ResourceGroup及数据集RequestMappingContext,其中,所述方法解析器可以为org.springframework.web.bind.annotation.support.HandlerMethodResolver,所述API的注解信息包括所述类名、所述方法名、入参数量、出参数量、入参类型、出参类型以及参数顺序等,所述API的数据信息为所述API对应的具体代码实现内容。
本发明实施例通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成API的注解集及数据集,API的注解信息和数据信息分开,便于解析器找到对应的信息进行解析,极大增强了解析效率。
步骤S300,通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息。
具体地,通过解析各个所述API对应的注解集及数据集,所述注解集可以为ResourceGroup,所述数据集可以为RequestMappingContext,解析所述ResourceGroup中各个API对应的注解信息及所述RequestMappingContext中各个API对应的数据信息,最终提取出待生成API文档的第一API信息及第二API信息。
在示例性的实施例中,所述步骤S300可以包括:
通过所述第一应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@ApiOperation注解信息,以提取出各个所述应用程序接口对应的消费报文格式类型及返回报文类型,得到各个所述应用程序接口的第一目标接口信息,其中,所述第一应用程序接口解析器用于解析所述应用程序接口对应的注解信息中的请求报文类型,所述@ApiOperation注解信息用于包括所述应用程序接口的接口说明、接口请求方式及接口返回参数类型。
示例性的,所述第一API解析器可以为MediaTypeReader,所述MediaTypeReader是解析请求的MediaType类型,通过SpringMVC中的第一API解析器MediaTypeReader解析所述API中的@ApiOperation注解信息,以提取出所述API的消费报文格式类型consume及返回报文类型produce,得到所述API的第一目标接口信息。
在示例性的实施例中,所述步骤S300还可以包括:
通过所述第二应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@RequestMapping注解信息,以提取出各个所述应用程序接口对应的请求路径,得到各个所述应用程序接口对应的第二目标接口信息,其中,所述第二应用程序接口解析器用于解析所述应用程序接口的请求路径,所述@RequestMapping注解信息用于包括请求路径映射的操作。
示例性的,所述第二API解析器可以为ApiDescReader,通过所述ApiDescReader解析所述API中的@RequestMapping注解信息,并将提取出所述API的请求路径,所述请求路径可以为RequestUrlPattern,作为所述API的第二目标接口信息。需要说明的是,所述@RequestMapping注解信息用于处理请求地址映射的注解,可用于类或方法,当用于类上时,表示类中的所有响应请求的方法都是以该地址作为父路径。此外,通过所述RequestMapping注解信息可以定义不同的处理器映射规则。
在示例性的实施例中,所述步骤S300还可以包括:
通过所述第三应用程序接口解析器解析各个所述应用程序接口对应的数据信息,以提取出各个所述应用程序接口的报文及返回报文,得到各个所述应用程序接口对应的第二应用程序接口信息,其中,所述第三应用程序接口解析器用于解析所述应用程序接口的报文。
示例性的,通过所述第三API解析器解析各个所述API对应的数据信息,以提取出各个所述API的报文及返回报文,得到各个所述API的第二应用程序接口信息,其中,所述第三API解析器可以为ModelReader。需要说明的是,所述报文是在各个系统之间进行请求和响应时用来交换信息的,需要遵守规定好的格式,另外,应用报文是在多个系统之间需要通信的时候,比如银行的系统到网关系统再到银联系统,在这中间报文就承担了装载数据,运输数据的功能,可能在这三个系统中报文的格式互不相同,但是承载的数据都是一样的。
在示例性的实施例中,所述方法还可以包括:
通过所述第四应用程序接口解析器解析各个所述应用程序接口中的预设标签,以将所述预设标签转换成通用标签,所述通用标签用于检查所述应用程序接口请求之间传递的参数的属性。
示例性的,通过所述第四API解析器解析各个所述API中的预设标签,以将所述预设标签转换成通用标签,其中,所述第四API解析器可以为AnnotationReader。当针对平安基础架构(Ping An Foundation Architecture,PAFA)进行API文档的生成时,需要先通过PafaAnnotationReader解析Pafa4的预设标签com.paic.pafa.web.session.SessionAttr,将所述预设标签转换为通用标签com.paic.pafa.web.session.SessionAttrorg.springframework.web.bind.annotation.SessionAttribute,进而实现对标签的解析操作。
本发明实施例通过所述预设开发框架中的API解析器对各个所述API对应的注解信息及数据信息进行解析,以提取出各个所述API对应的第一API信息及第二API信息。本发明实施例不仅能对API对应的注解信息及数据信息进行精准解析,而且能够将特殊标签转换为通用标签,极大增加了生成API文档的实用性。
步骤S400,将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
具体地,将所述第一API信息及所述第二API信息以字典的形式进行组合,得到各个所述API对应的目标接口信息。
在示例性的实施例中,所述步骤S400可以包括:
将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
具体地,将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息以字典的格式进行组合,得到各个所述API对应的目标接口信息。
本发明实施例通过将所述第一API信息及所述第二API信息进行组合,得到各个所述API对应的目标接口信息。本发明实施例API的接口信息按照一定的顺序进行组合,使生成的API文档更直观有序。
步骤S500,将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
具体地,将各个所述API对应的目标接口信息按照Swagger格式进行JSON序列化,生成Swagger API文档。
进一步地,在示例性的实施例中,所述文档生成方法还包括:
将各个所述应用程序接口对应的目标接口信息上传至区块链中。
具体地,为了保证各个所述应用程序接口对应的目标接口信息的安全性和对用户的公正透明性,可以将得到的各个所述应用程序接口对应的目标接口信息上传至区块链中,然后用户设备可以从区块链中下载得到各个所述应用程序接口对应的目标接口信息,以便查证各个所述应用程序接口对应的目标接口信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明实施例提供的文档生成方法,通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成所述API的注解集及数据集,API的注解信息和数据信息分开,便于解析器找到对应的信息进行解析,极大增强了解析效率。此外,通过所述预设开发框架中的API解析器对各个所述API对应的注解信息及数据信息进行解析,以提取出各个所述API对应的第一API信息及第二API信息,不仅能对API对应的注解信息及数据信息进行精准解析,而且能够将特殊标签转换为通用标签,极大增加了生成API文档的实用性。而且通过API的接口信息按照一定的顺序进行组合,使生成的API文档更直观有序。本发明实施例使开源产品能够适配使用现有的开发框架进行API加载管理,同时正确生成对应的API文档。
实施例二
参阅图2,示出了本发明实施例之一种文档生成系统700的程序模块示意图。所述文档生成系统700可以应用于计算机设备中,所述计算机设备可以是手机、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、等具有数据传输功能的设备。在本发明实施例中,所述文档生成系统700可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于可读存储介质中,并由一个或多个处理器所执行,以完成本发明实施例,并可实现上述文档生成系统700。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述所述文档生成系统700在可读存储介质中的执行过程。在示例性的实施例中,该文档生成系统700包括获取模块701、第一解析模块702、第二解析模块703、组合模块704及生成模块705。以下描述将具体介绍本发明实施例各程序模块的功能:
获取模块701,用于获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口。
示例性的,获取基于Spring MVC3.1之前的版本进行开发的开发框架中所有的类进行扫描,得到处理器类,其中,所述开发框架可以包括框架org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,所述处理器类可以包括类handlerMapper。
需要说明的是,Spring MVC是一种web层MVC框架且属于Spring的一个模块,拥有Spring的特性,其中,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架提供了构建Web应用程序的全功能MVC模块。而且Spring框架是高度可配置的,包含多种视图技术。Spring的MVC框架主要由前置控制器DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
第一解析模块702,用于通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息。
示例性的,通过使用Spring MVC框架中预设的方法解析器对所述类handlerMapper中的方法handler进行解析,并提取出所述方法handler中的各个API的注解信息及数据信息,生成注解集ResourceGroup及数据集RequestMappingContext,其中,所述方法解析器可以为org.springframework.web.bind.annotation.support.HandlerMethodResolver,所述API的注解信息包括所述类名、所述方法名、入参数量、出参数量、入参类型、出参类型以及参数顺序等,所述API的数据信息为所述API对应的具体代码实现内容。
本发明实施例通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成API的注解集及数据集,API的注解信息和数据信息分开,便于解析器找到对应的信息进行解析,极大增强了解析效率。
第二解析模块703,用于通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息。
具体地,通过解析各个所述API对应的注解集及数据集,所述注解集可以为ResourceGroup,所述数据集可以为RequestMappingContext,解析所述ResourceGroup中各个API对应的注解信息及所述RequestMappingContext中各个API对应的数据信息,最终提取出待生成API文档的第一API信息及第二API信息。
在示例性的实施例中,所述第二解析模块703具体用于:
通过所述第一应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@ApiOperation注解信息,以提取出各个所述应用程序接口对应的消费报文格式类型及返回报文类型,得到各个所述应用程序接口的第一目标接口信息,其中,所述第一应用程序接口解析器用于解析所述应用程序接口对应的注解信息中的请求报文类型,所述@ApiOperation注解信息用于包括所述应用程序接口的接口说明、接口请求方式及接口返回参数类型。
示例性的,所述第一API解析器可以为MediaTypeReader,所述MediaTypeReader是解析请求的MediaType类型,通过SpringMVC中的第一API解析器MediaTypeReader解析所述API中的@ApiOperation注解信息,以提取出所述API的消费报文格式类型consume及返回报文类型produce,得到所述API的第一目标接口信息。
在示例性的实施例中,所述第二解析模块703具体还用于:
通过所述第二应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@RequestMapping注解信息,以提取出各个所述应用程序接口对应的请求路径,得到各个所述应用程序接口对应的第二目标接口信息,其中,所述第二应用程序接口解析器用于解析所述应用程序接口的请求路径,所述@RequestMapping注解信息用于包括请求路径映射的操作。
示例性的,所述第二API解析器可以为ApiDescReader,通过所述ApiDescReader解析所述API中的@RequestMapping注解信息,并将提取出所述API的请求路径,所述请求路径可以为RequestUrlPattern,作为所述API的第二目标接口信息。需要说明的是,所述@RequestMapping注解信息用于处理请求地址映射的注解,可用于类或方法,当用于类上时,表示类中的所有响应请求的方法都是以该地址作为父路径。此外,通过所述RequestMapping注解信息可以定义不同的处理器映射规则。
在示例性的实施例中,所述第二解析模块703具体还用于:
通过所述第三应用程序接口解析器解析各个所述应用程序接口对应的数据信息,以提取出各个所述应用程序接口的报文及返回报文,得到各个所述应用程序接口对应的第二应用程序接口信息,其中,所述第三应用程序接口解析器用于解析所述应用程序接口的报文。
示例性的,通过所述第三API解析器解析各个所述API对应的数据信息,以提取出各个所述API的报文及返回报文,得到各个所述API的第二应用程序接口信息,其中,所述第三API解析器可以为ModelReader。需要说明的是,所述报文是在各个系统之间进行请求和响应时用来交换信息的,需要遵守规定好的格式,另外,应用报文是在多个系统之间需要通信的时候,比如银行的系统到网关系统再到银联系统,在这中间报文就承担了装载数据,运输数据的功能,可能在这三个系统中报文的格式互不相同,但是承载的数据都是一样的。
在示例性的实施例中,所述第二解析模块703具体还用于:
通过所述第四应用程序接口解析器解析各个所述应用程序接口中的预设标签,以将所述预设标签转换成通用标签,所述通用标签用于检查所述应用程序接口请求之间传递的参数的属性。
示例性的,通过所述第四API解析器解析各个所述API中的预设标签,以将所述预设标签转换成通用标签,其中,所述第四API解析器可以为AnnotationReader。当针对平安基础架构(Ping An Foundation Architecture,PAFA)进行API文档的生成时,需要先通过PafaAnnotationReader解析Pafa4的预设标签com.paic.pafa.web.session.SessionAttr,将所述预设标签转换为通用标签com.paic.pafa.web.session.SessionAttrorg.springframework.web.bind.annotation.SessionAttribute,进而实现对标签的解析操作。
本发明实施例通过所述预设开发框架中的API解析器对各个所述API对应的注解信息及数据信息进行解析,以提取出各个所述API对应的第一API信息及第二API信息。本发明实施例不仅能对API对应的注解信息及数据信息进行精准解析,而且能够将特殊标签转换为通用标签,极大增加了生成API文档的实用性。
组合模块704,用于将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
具体地,将所述第一API信息及所述第二API信息以字典的形式进行组合,得到各个所述API对应的目标接口信息。
在示例性的实施例中,所述组合模块704具体用于:
将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
具体地,将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息以字典的格式进行组合,得到各个所述API对应的目标接口信息。
本发明实施例通过将所述第一API信息及所述第二API信息进行组合,得到各个所述API对应的目标接口信息。本发明实施例API的接口信息按照一定的顺序进行组合,使生成的API文档更直观有序。
生成模块705,用于将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
具体地,将各个所述API对应的目标接口信息按照Swagger格式进行JSON序列化,生成Swagger API文档。
进一步地,在示例性的实施例中,所述文档生成系统700还包括:
将各个所述应用程序接口对应的目标接口信息上传至区块链中。
具体地,为了保证各个所述应用程序接口对应的目标接口信息的安全性和对用户的公正透明性,可以将得到的各个所述应用程序接口对应的目标接口信息上传至区块链中,然后用户设备可以从区块链中下载得到各个所述应用程序接口对应的目标接口信息,以便查证各个所述应用程序接口对应的目标接口信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明实施例提供的文档生成系统700,通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成所述API的注解集及数据集,API的注解信息和数据信息分开,便于解析器找到对应的信息进行解析,极大增强了解析效率。此外,通过所述预设开发框架中的API解析器对各个所述API对应的注解信息及数据信息进行解析,以提取出各个所述API对应的第一API信息及第二API信息,不仅能对API对应的注解信息及数据信息进行精准解析,而且能够将特殊标签转换为通用标签,极大增加了生成API文档的实用性。而且通过API的接口信息按照一定的顺序进行组合,使生成的API文档更直观有序。本发明实施例使开源产品能够适配使用现有的开发框架进行API加载管理,同时正确生成对应的API文档。
实施例三
参阅图3,本发明实施例还提供一种计算机设备800的硬件架构示意图。如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。在本发明实施例中,所述计算机设备800是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备800至少包括,但不限于,可通过装置总线相互通信连接存储器801、处理器802、网络接口803。其中:
本发明实施例中,存储器801至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些发明实施例中,存储器801可以是计算机设备800的内部存储单元,例如所述计算机设备800的硬盘或内存。在另一些发明实施例中,存储器801也可以是计算机设备800的外部存储设备,例如所述计算机设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,存储器801还可以既包括计算机设备800的内部存储单元也包括其外部存储设备。本发明实施例中,存储器801通常用于存储安装于计算机设备800的操作装置和各类应用软件,例如所述文档生成系统700的程序代码等。此外,存储器801还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器802在一些发明实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他语音处理芯片。所述处理器802通常用于控制计算机设备800的总体操作。本发明实施例中,处理器802用于运行存储器801中存储的程序代码或者处理数据,例如运行所述文档生成系统700的程序代码,以实现上述各个发明实施例中的所述文档生成方法。
所述网络接口803可包括无线网络接口或有线网络接口,所述网络接口803通常用于在所述计算机设备800与其他电子装置之间建立通信连接。例如,所述网络接口803用于通过网络将所述计算机设备800与外部终端相连,在所述计算机设备800与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯装置(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图3仅示出了具有部件801-803的计算机设备800,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本发明实施例中,存储于存储器801中的所述文档生成系统700还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器801中,并由一个或多个处理器(本发明实施例为处理器802)所执行,以完成本发明实施例之文档生成方法。
实施例四
本发明实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本发明实施例的计算机可读存储介质用于存储所述文档生成系统700,以被处理器执行时实现本发明实施例之文档生成方法。
上述本发明实施例序号仅仅为了描述,不代表发明实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述发明实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选发明实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种文档生成方法,其特征在于,所述方法包括:
获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口;
通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息;
通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息;
将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息;
将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
2.如权利要求1所述的文档生成方法,其特征在于,所述应用程序接口解析器包括第一应用程序接口解析器,所述第一应用程序接口信息包括第一目标接口信息,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息,包括:
通过所述第一应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@ApiOperation注解信息,以提取出各个所述应用程序接口对应的消费报文格式类型及返回报文类型,得到各个所述应用程序接口的第一目标接口信息,其中,所述第一应用程序接口解析器用于解析所述应用程序接口对应的注解信息中的请求报文类型,所述@ApiOperation注解信息用于包括所述应用程序接口的接口说明、接口请求方式及接口返回参数类型。
3.如权利要求2所述的文档生成方法,其特征在于,所述应用程序接口解析器还包括第二应用程序接口解析器,所述第一应用程序接口信息还包括第二目标接口信息,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息,还包括:
通过所述第二应用程序接口解析器解析各个所述应用程序接口对应的注解信息中的@RequestMapping注解信息,以提取出各个所述应用程序接口对应的请求路径,得到各个所述应用程序接口对应的第二目标接口信息,其中,所述第二应用程序接口解析器用于解析所述应用程序接口的请求路径,所述@RequestMapping注解信息用于包括请求路径映射的操作。
4.如权利要求3所述的文档生成方法,其特征在于,所述应用程序接口解析器还包括第三应用程序接口解析器,所述通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第二应用程序接口信息,还包括:
通过所述第三应用程序接口解析器解析各个所述应用程序接口对应的数据信息,以提取出各个所述应用程序接口的报文及返回报文,得到各个所述应用程序接口对应的第二应用程序接口信息,其中,所述第三应用程序接口解析器用于解析所述应用程序接口的报文。
5.如权利要求4所述的文档生成方法,其特征在于,所述应用程序接口解析器还包括第四应用程序接口解析器,所述方法还包括:
通过所述第四应用程序接口解析器解析各个所述应用程序接口中的预设标签,以将所述预设标签转换成通用标签,所述通用标签用于检查所述应用程序接口请求之间传递的参数的属性。
6.如权利要求1至4中任意一项所述的文档生成方法,其特征在于,所述将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息,包括:
将所述第一目标接口信息、所述第二目标接口信息以及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息。
7.如权利要求6所述的文档生成方法,其特征在于,所述文档生成方法还包括:
将各个所述应用程序接口对应的目标接口信息上传至区块链中。
8.一种文档生成系统,其特征在于,所述系统包括:
获取模块,用于获取预设开发框架中的处理器类,其中,所述处理器类包括一个或多个方法,所述方法包括一个或多个应用程序接口;
第一解析模块,用于通过预设的方法解析器对所述处理器类中的各个所述方法进行解析,生成各个所述应用程序接口的注解集及数据集,所述注解集包括各个所述应用程序接口对应的注解信息,所述数据集包括各个所述应用程序接口对应的数据信息;
第二解析模块,用于通过所述预设开发框架中的应用程序接口解析器对各个所述应用程序接口对应的注解信息及数据信息进行解析,以提取出各个所述应用程序接口对应的第一应用程序接口信息及第二应用程序接口信息;
组合模块,用于将所述第一应用程序接口信息及所述第二应用程序接口信息进行组合,得到各个所述应用程序接口对应的目标接口信息;
生成模块,用于将各个所述应用程序接口对应的目标接口信息按照预设格式进行序列化,生成应用程序接口文档。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项的所述文档生成方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项的所述文档生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110567072.4A CN113296785A (zh) | 2021-05-24 | 2021-05-24 | 文档生成方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110567072.4A CN113296785A (zh) | 2021-05-24 | 2021-05-24 | 文档生成方法、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113296785A true CN113296785A (zh) | 2021-08-24 |
Family
ID=77324541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110567072.4A Pending CN113296785A (zh) | 2021-05-24 | 2021-05-24 | 文档生成方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296785A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398093A (zh) * | 2021-12-20 | 2022-04-26 | 深圳前海环融联易信息科技服务有限公司 | 一种基于注解读取元数据的读取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040863A1 (en) * | 2012-07-31 | 2014-02-06 | Vmware, Inc. | Documentation generation for web apis based on byte code analysis |
CN107239271A (zh) * | 2016-03-29 | 2017-10-10 | 滴滴(中国)科技有限公司 | 开发文档生成方法及装置 |
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
CN110806863A (zh) * | 2019-11-05 | 2020-02-18 | 泰康保险集团股份有限公司 | 接口文档生成方法及装置、电子设备、存储介质 |
-
2021
- 2021-05-24 CN CN202110567072.4A patent/CN113296785A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040863A1 (en) * | 2012-07-31 | 2014-02-06 | Vmware, Inc. | Documentation generation for web apis based on byte code analysis |
CN107239271A (zh) * | 2016-03-29 | 2017-10-10 | 滴滴(中国)科技有限公司 | 开发文档生成方法及装置 |
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
CN110806863A (zh) * | 2019-11-05 | 2020-02-18 | 泰康保险集团股份有限公司 | 接口文档生成方法及装置、电子设备、存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398093A (zh) * | 2021-12-20 | 2022-04-26 | 深圳前海环融联易信息科技服务有限公司 | 一种基于注解读取元数据的读取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114424257A (zh) | 使用机器学习对表格数据进行自动描绘和提取 | |
CN110599354B (zh) | 线上对账方法、系统、计算机设备和计算机可读存储介质 | |
CN110704521A (zh) | 接口数据接入方法及系统 | |
CN111694565A (zh) | 数据可视化应用开发方法及系统 | |
CN107862425B (zh) | 风控数据采集方法、设备、系统及可读存储介质 | |
CN110928802A (zh) | 基于自动生成用例的测试方法、装置、设备及存储介质 | |
CN112149390A (zh) | 报告生成方法、系统、计算机设备与计算机可读存储介质 | |
CN110708307B (zh) | 转码器生成方法和装置、电子设备及存储介质 | |
CN110795697A (zh) | 逻辑表达式的获取方法、装置、存储介质以及电子装置 | |
CN114491047A (zh) | 多标签文本分类方法、装置、电子设备及存储介质 | |
CN114519084A (zh) | 基于区块链的医疗数据检查方法、装置、设备及介质 | |
CN113296785A (zh) | 文档生成方法、系统、设备及可读存储介质 | |
CN113296752A (zh) | 生成api文档的方法、系统、设备及存储介质 | |
CN112559027A (zh) | 功能组件的创建与管理方法、系统、设备及可读存储介质 | |
CN113051224A (zh) | 文件传输方法、装置、电子设备及计算机可读存储介质 | |
CN112579452A (zh) | 软件自动化测试方法、装置、设备及存储介质 | |
CN111552712A (zh) | 报表数据提取方法、装置及计算机设备 | |
CN115712422A (zh) | 表单页面的生成方法、装置、计算机设备及存储介质 | |
CN115174375A (zh) | 报文解包方法、装置、设备及介质 | |
CN114896161A (zh) | 基于人工智能的文件构造方法、装置、计算机设备及介质 | |
CN113867718A (zh) | 图片生成方法、装置、计算机设备及可读存储介质 | |
CN114428601A (zh) | 视觉稿检查方法及装置 | |
CN112529700A (zh) | 一种业务办理与审核方法、系统、设备及可读存储介质 | |
CN113032003B (zh) | 开发文件导出方法、装置、电子设备及计算机存储介质 | |
CN115829768A (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 |