CN114296791A - 接口文档的自动化生成方法、装置和计算机设备 - Google Patents
接口文档的自动化生成方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN114296791A CN114296791A CN202111617992.9A CN202111617992A CN114296791A CN 114296791 A CN114296791 A CN 114296791A CN 202111617992 A CN202111617992 A CN 202111617992A CN 114296791 A CN114296791 A CN 114296791A
- Authority
- CN
- China
- Prior art keywords
- annotation
- interface document
- interface
- generating
- class
- 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
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种接口文档的自动化生成方法、装置、计算机设备和存储介质,所述方法包括:读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;通过所述字节码获取所述类的多个方法;获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;根据所述第二注解生成所述接口文档。上述方法能够提供能够减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性。
Description
技术领域
本发明涉及接口处理领域,特别是涉及一种接口文档的自动化生成方法、装置、计算机设备和存储介质。
背景技术
在前后端联调时,后端开发人员在编写接口文档和管理接口文档时容易产生接口文档管理问题。如,在编写接口文档时,开发人员一般通过手工填写来维护接口文档,操作较繁琐且费时间,容易出现忘记修改变动的参数等。还有一些自动化生成接口文档的,往往代码嵌入比较大,代码看起来复杂且不美观,这些都增加了开发的成本。目前,减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性,极大地提升团队协作和沟通效率,就尤为重要了。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种接口文档的自动化生成方法、装置、计算机设备和存储介质,能够减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性。
为了解决上述中至少一个技术问题,本发明实施例提供了一种接口文档的自动化生成方法,所述方法包括:
读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;
通过所述字节码获取所述类的多个方法;
获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;
根据所述第二注解生成所述接口文档。
在一个实施例中,所述第一注解为@Controller注解。
在一个实施例中,所述第二注解为@PostMapping注解。
在一个实施例中,所述根据所述第二注解生成所述接口文档,包括:
通过java接口反射的方式获取所述第二注解的注释,根据所述第二注解的注释生成所述接口文档。
在一个实施例中,所述根据所述第二注解的注释生成所述接口文档,包括:
获取预设的接口文档的格式;
从所述第二注解的注释获取所述接口文档的格式的参数;
根据所述参数和所述接口文档的格式生成所述接口文档。
在一个实施例中,所述根据所述参数和所述接口文档的格式生成所述接口文档,包括:
根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档。
在一个实施例中,所述接口文档的格式为Markdown语法的格式,所述根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档,包括:
根据所述参数和所述Markdown语法的格式通过Freemarker模板引擎生成所述接口文档。
一种接口文档的自动化生成装置,所述装置包括:
读取模块,用于读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;
第一获取模块,用于通过所述字节码获取所述类的多个方法;
第二获取模块,用于获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;
生成模块,用于根据所述第二注解生成所述接口文档。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
上述一种接口文档的自动化生成方法、装置、计算机设备和存储介质,读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;通过所述字节码获取所述类的多个方法;获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;根据所述第二注解生成所述接口文档。因此,通过无代码入侵和利用业务本身的类注释以及方法注释等一键生成接口文档,减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性。
附图说明
图1是本发明实施例中的一种接口文档的自动化生成方法的流程示意图;
图2是本发明实施例中一种API接口管理系统的结构框图;
图3是本发明实施例中的一种接口文档的自动化生成装置的结构示意图;
图4是本发明实施例中的计算机设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种接口文档的自动化生成方法,应用于服务端。如图1所示,该一种接口文档的自动化生成方法,包括以下步骤:
S102,读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类。
本实施例中,所述第一注解为@Controller注解。
具体地,一个接口中包含@Controller注解的类,读取包含@Controller注解的类的字节码。
S104,通过所述字节码获取所述类的多个方法。
具体地,通过字节码获取类的所有属性和方法。
S106,获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容。
本实施例中,所述第二注解为@PostMapping注解。筛选有特定注解的方法,如包含@PostMapping注解的方法。
S108,根据所述第二注解生成所述接口文档。
在一个实施例中,所述根据所述第二注解生成所述接口文档,包括:通过java接口反射的方式获取所述第二注解的注释,根据所述第二注解的注释生成所述接口文档。
在一个实施例中,所述根据所述第二注解的注释生成所述接口文档,包括:获取预设的接口文档的格式;从所述第二注解的注释获取所述接口文档的格式的参数;根据所述参数和所述接口文档的格式生成所述接口文档。
在一个实施例中,所述根据所述参数和所述接口文档的格式生成所述接口文档,包括:根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档。
在一个实施例中,所述接口文档的格式为Markdown语法的格式,所述根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档,包括:根据所述参数和所述Markdown语法的格式通过Freemarker模板引擎生成所述接口文档。
具体地,通过反射获取第二注解的注释,按格式进行保存参数,调用接口即可生成需要的接口文档。
具体地,主要利用到的功能有IO、java接口反射、Freemarker模板引擎、Markdown语法等。例如一个接口包含@Controller的注解的类和@PostMapping的注解的方法等,以此确定该类是否是一个接口类和该方法是否需要生成接口文档。如是,则利用java的接口反射等技术读取类中的注释,再按照一定的语法进行生成文档。在代码上,不需要增加新的注解,只需要利用原生的一些注解如@Controller@PostMapping等,实现代码上的无入侵或入侵性少。在配置上,无需再置入新的服务器配置,只需要在原有服务器基础上进行配置就能生成。生成的接口文档的参数层级结构清晰,对参数的结构进行分析,可实现参数层级嵌套,继承父类等。
在一个实施例中,上述一种接口文档的自动化生成方法,应用于Swagger接口文档管理系统。
具体地,上述一种接口文档的自动化生成方法提供了完善的接口文档管理功能,通过这套规范,只需要按照规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。
上述一种接口文档的自动化生成方法,读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;通过所述字节码获取所述类的多个方法;获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;根据所述第二注解生成所述接口文档。因此,通过无代码入侵和利用业务本身的类注释以及方法注释等一键生成接口文档,减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性。
以下提供一种API接口管理系统,用于详细说明上述一种接口文档的自动化生成方法的应用场景:
如图2所示,一种API接口管理系统包括Web前端、服务端和数据库。Web前端:管理接口文档,数据API接口的数据元信息通过http请求发送至所述服务端进行保存和修改。服务端:负责接口文档管理的业务逻辑处理。数据库:数据库用于存储配置好的的所述API接口文档的数据信息。
因此,解决了接口文档管理中,代码入侵且不方便生成的问题,利于开发人员一键生成接口文档和管理接口文档。
在一实施例中,本发明还提供一种接口文档的自动化生成装置,如图3所示,一种接口文档的自动化生成装置包括读取模块302、第一获取模块304、第二获取模块306以及生成模块308。
读取模块302,用于读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类。
本实施例中,所述第一注解为@Controller注解。
具体地,一个接口中包含@Controller注解的类,读取包含@Controller注解的类的字节码。
第一获取模块304,用于通过所述字节码获取所述类的多个方法。
具体地,通过字节码获取类的所有属性和方法。
第二获取模块306,用于获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容。
本实施例中,所述第二注解为@PostMapping注解。筛选有特定注解的方法,如包含@PostMapping注解的方法。
生成模块308,用于根据所述第二注解生成所述接口文档。
在一个实施例中,所述根据所述第二注解生成所述接口文档,包括:通过java接口反射的方式获取所述第二注解的注释,根据所述第二注解的注释生成所述接口文档。
在一个实施例中,所述根据所述第二注解的注释生成所述接口文档,包括:获取预设的接口文档的格式;从所述第二注解的注释获取所述接口文档的格式的参数;根据所述参数和所述接口文档的格式生成所述接口文档。
在一个实施例中,所述根据所述参数和所述接口文档的格式生成所述接口文档,包括:根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档。
在一个实施例中,所述接口文档的格式为Markdown语法的格式,所述根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档,包括:根据所述参数和所述Markdown语法的格式通过Freemarker模板引擎生成所述接口文档。
具体地,通过反射获取第二注解的注释,按格式进行保存参数,调用接口即可生成需要的接口文档。
具体地,主要利用到的功能有IO、java接口反射、Freemarker模板引擎、Markdown语法等。例如一个接口包含@Controller的注解的类和@PostMapping的注解的方法等,以此确定该类是否是一个接口类和该方法是否需要生成接口文档。如是,则利用java的接口反射等技术读取类中的注释,再按照一定的语法进行生成文档。在代码上,不需要增加新的注解,只需要利用原生的一些注解如@Controller@PostMapping等,实现代码上的无入侵或入侵性少。在配置上,无需再置入新的服务器配置,只需要在原有服务器基础上进行配置就能生成。生成的接口文档的参数层级结构清晰,对参数的结构进行分析,可实现参数层级嵌套,继承父类等。
在一个实施例中,上述一种接口文档的自动化生成装置,应用于Swagger接口文档管理系统。
具体地,上述一种接口文档的自动化生成装置提供了完善的接口文档管理功能,通过这套规范,只需要按照规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。
上述一种接口文档的自动化生成装置,读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;通过所述字节码获取所述类的多个方法;获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;根据所述第二注解生成所述接口文档。因此,通过无代码入侵和利用业务本身的类注释以及方法注释等一键生成接口文档,减少人工编写接口文档的时间,促进高效新增和修改等功能的易用性。
关于一种接口文档的自动化生成装置的具体限定可以参见上文中对于一种接口文档的自动化生成方法的限定,在此不再赘述。上述一种接口文档的自动化生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序,该程序被处理器执行时实现上述实施例中任意一个实施例的一种接口文档的自动化生成方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSSMemory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的一种接口文档的自动化生成方法。
此外,图4是本发明实施例中的计算机设备的结构组成示意图。
本发明实施例还提供了一种计算机设备,如图4所示。所述计算机设备包括处理器402、存储器403、输入单元404以及显示单元405等器件。本领域技术人员可以理解,图4示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器403可用于存储应用程序401以及各功能模块,处理器402运行存储在存储器403的应用程序401,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元404用于接收信号的输入,以及接收用户输入的关键字。输入单元404可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元405可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元405可采用液晶显示器、有机发光二极管等形式。处理器402是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器403内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
作为一个实施例,所述计算机设备包括:一个或多个处理器402,存储器403,一个或多个应用程序401,其中所述一个或多个应用程序401被存储在存储器403中并被配置为由所述一个或多个处理器402执行,所述一个或多个应用程序401配置用于执行上述实施例中的任意一实施例中的一种接口文档的自动化生成方法。
另外,以上对本发明实施例所提供的一种接口文档的自动化生成方法、装置、系统、计算机设备和存储介质进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种接口文档的自动化生成方法,其特征在于,包括:
读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;
通过所述字节码获取所述类的多个方法;
获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;
根据所述第二注解生成所述接口文档。
2.根据权利要求1所述的方法,其特征在于,所述第一注解为@Controller注解。
3.根据权利要求1所述的方法,其特征在于,所述第二注解为@PostMapping注解。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第二注解生成所述接口文档,包括:
通过java接口反射的方式获取所述第二注解的注释,根据所述第二注解的注释生成所述接口文档。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二注解的注释生成所述接口文档,包括:
获取预设的接口文档的格式;
从所述第二注解的注释获取所述接口文档的格式的参数;
根据所述参数和所述接口文档的格式生成所述接口文档。
6.根据权利要求5所述的方法,其特征在于,所述根据所述参数和所述接口文档的格式生成所述接口文档,包括:
根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档。
7.根据权利要求6所述的方法,其特征在于,所述接口文档的格式为Markdown语法的格式,所述根据所述参数和所述接口文档的格式通过Freemarker模板引擎生成所述接口文档,包括:
根据所述参数和所述Markdown语法的格式通过Freemarker模板引擎生成所述接口文档。
8.一种接口文档的自动化生成装置,其特征在于,所述装置包括:
读取模块,用于读取包含第一注解的类的字节码,所述第一注解用于表征所述类为接口类;
第一获取模块,用于通过所述字节码获取所述类的多个方法;
第二获取模块,用于获取所述多个方法中包含第二注解的目标方法,所述第二注解用于表征出所述目标方法为接口文档的对象内容;
生成模块,用于根据所述第二注解生成所述接口文档。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111617992.9A CN114296791A (zh) | 2021-12-27 | 2021-12-27 | 接口文档的自动化生成方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111617992.9A CN114296791A (zh) | 2021-12-27 | 2021-12-27 | 接口文档的自动化生成方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114296791A true CN114296791A (zh) | 2022-04-08 |
Family
ID=80970143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111617992.9A Pending CN114296791A (zh) | 2021-12-27 | 2021-12-27 | 接口文档的自动化生成方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296791A (zh) |
-
2021
- 2021-12-27 CN CN202111617992.9A patent/CN114296791A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018095306A1 (zh) | 应用程序页面处理方法、装置及存储介质 | |
CN108388622B (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
JP4420968B2 (ja) | コマンディングのために方法及びコンピュータ可読媒体 | |
CN108874924B (zh) | 搜索服务的创建方法、装置及计算机可读存储介质 | |
US11755293B2 (en) | Code execution and data processing pipeline | |
CN112506854B (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN113032273A (zh) | 一种应用程序的调试方法、装置、计算机设备和存储介质 | |
CN116560683A (zh) | 软件更新方法、装置、设备及存储介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN111159301A (zh) | 一种基于智能合约的数据创建方法、装置、设备及存储介质 | |
CN114253537A (zh) | 表单生成方法及装置、电子设备和存储介质 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN110045952B (zh) | 代码调用方法与装置 | |
CN115062084B (zh) | 基于数据库元数据构建api接口方法及装置 | |
CN114296791A (zh) | 接口文档的自动化生成方法、装置和计算机设备 | |
CN114153438A (zh) | 一种api自动生成系统 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN114489674A (zh) | 动态数据模型的数据校验方法和装置 | |
CN113868344A (zh) | 面向电力应用的构建系统、方法、装置、服务器及存储介质 | |
CN112230904A (zh) | 基于接口文档的代码生成方法、装置、存储介质及服务器 | |
CN112800741A (zh) | 任务执行方法、电子设备及存储介质 | |
CN109271161B (zh) | 样板代码生成方法、装置及存储设备及计算机设备 | |
CN112394980B (zh) | 机型模拟方法、装置、设备及存储介质 | |
CN111831274B (zh) | 一种元数据解析引擎配置系统、方法、终端及可读存储介质 | |
CN116450682B (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 |