CN107515771A - 基于SpringMVC的API文档生成方法及*** - Google Patents

基于SpringMVC的API文档生成方法及*** Download PDF

Info

Publication number
CN107515771A
CN107515771A CN201710800995.3A CN201710800995A CN107515771A CN 107515771 A CN107515771 A CN 107515771A CN 201710800995 A CN201710800995 A CN 201710800995A CN 107515771 A CN107515771 A CN 107515771A
Authority
CN
China
Prior art keywords
api
self
service end
springmvc
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
Application number
CN201710800995.3A
Other languages
English (en)
Inventor
王思望
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Blue Sea Skynet Technology Co Ltd
Original Assignee
Blue Sea Skynet Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Blue Sea Skynet Technology Co Ltd filed Critical Blue Sea Skynet Technology Co Ltd
Priority to CN201710800995.3A priority Critical patent/CN107515771A/zh
Publication of CN107515771A publication Critical patent/CN107515771A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

基于SpringMVC的API文档生成方法及***,通过自定义的注解,在自定义数据Bean中标记API信息,所述自定义Bean用于服务端代码的Controller层的函数的出参入参,遍历服务端运行的代码Controller层方法,自动抓取其函数的入参出参引用,解析出参入参的所有参数,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构,然后将其遍历解析得到的结果下发到Web客户端,为前端开发人员提供可视化的API技术文档。本发明可解决API文档更新不及时,维护成本高等问题,节约开发人员时间成本,提高工作积极性。

Description

基于SpringMVC的API文档生成方法及***
技术领域
本发明涉及应用程序开发,具体涉及基于SpringMVC的API文档生成方法及***。
背景技术
当前互联网中有大量的Web App开发都是使用到了JavaEE技术,并且大量地使用SpringMVC后端框架。
开发中,API文档是前后端对接接口、调试接口的必不可少的技术文档。当然API文档是独立于运行的代码之外,可以采取人工编写的方式,也可以选择网络上提供的一系列API文档生成框架生成。无论采取哪种方式,API文档的准确性、及时性极大地影响着前后端开发人员的开发效率和开发热情,所以一个高度自动化的API文档框架有着重要的意义和作用。
API接口文档如果采用Word、Excel等脱离代码的纯文本API文档,容易出现API文档版本众多,维护和发布困难,前后端代码时效性低等问题,并且极易出现人工书写错误,可靠性低。
对比现有的Apidoc的框架可以发现,其API文档描述没有脱离代码,采用Web的形式,这极大地提高API的时效性。但其API文档生成全部依赖于手写的Java注解,使得API中的关键信息(如入参出参变量名称)容易出现人工编写的错误,并且为了生成的API需要编写大量繁琐的注解,降低开发人员工作积极性。
发明内容
本发明所要解决的技术问题是针对现有技术中的不足,而提供基于SpringMVC的API文档生成方法及***。该方法及***可解决API文档更新不及时,维护成本高等问题,节约开发人员时间成本,提高工作积极性。
本发明公开的技术方案是:基于SpringMVC的API文档生成方法,其特征在于:通过自定义的注解,在自定义数据Bean中标记API信息,所述自定义Bean用于服务端代码的Controller层的函数参数,遍历服务端运行的代码Controller层方法,自动抓取其函数的入参出参引用,解析出参入参的所有参数,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构,然后将其遍历解析得到的结果下发到Web客户端,为前端开发人员提供可视化的API技术文档。
在上述方案中,所述自定义注解由@Doc、@Act,@DataLength,@DataRange四个注解组成,用于描述API字段的属性。
在上述方案中,所述客户端展示Html页面,用于展示从服务端请求下来的API文档数据。
在上述方案中,在浏览器端由Script脚本请求服务端API文档数据,并构建Html代码,来实现向用户提供可视化API技术文档。
本发明还公开了一种技术方案:基于SpringMVC的API文档生成***,该***主要包括自动API文档生成框架部分和常规业务代码部分,其特征在于:
所述自动API文档生成框架部分包含:
自定义注解模块,用于标记API信息,并将其发送给常规业务代码部分的自定义数据Bean;
Doc核心解释器,用于对常规业务代码部分的SpringMVC Controller的API方法进行遍历解析,自动抓取其入参出参引用,生产生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构;
API视图层模块,基于Doc核心解释器所遍历解析得到的结果,将所述结果下发到Web客户端,为前端开发人员提供可视化的API技术文档;
所述常规业务代码部分包括:
自定义数据Bean,用于Controller函数的出参入参;
SpringMVC Controller,引用自定义数据Bean作为函数出参入参,作为业务代码结构进行业务运算。
在上述方案中,所述自定义注解由@Doc、@Act,@DataLength,@DataRange四个注解组成,用于描述API字段的属性。
在上述方案中,所述客户端展示包含Html页面,用于展示从服务端请求下来的API文档数据。
在上述方案中,所述API视图层模块在浏览器端由Script脚本请求服务端API文档数据,并构建Html代码,来实现向用户提供可视化API技术文档。
本发明具有如下有益的效果:
注解数量少,容易掌握,注释编写简洁,开发快速;
注解编写不涉及字段名称等关键信息,不会出现人工手写错误导致程序bug;
API的信息均是从运行的代码中抓取构建,不会出现后端修改接口的字段数量、名称、属性等信息忘了更新API描述导致的bug,时效性高;
支持无限层级嵌套,包括复杂结构(列表,对象,map)等,几乎满足所有的数据结构,并且注解的编写跟层级结构解耦,结构关系均是从运行的代码中抓取构建,在复杂的层级结构中也不会出现人为编写错误。
附图说明
图1是本发明的方法流程图;
图2是本发明的***方框示意图。
具体实施方式
请参考图1。如图1所示,本发明所公开的基于SpringMVC的API文档生成方法主要包含以下步骤:
10. 在自定义数据Bean中标记API信息,具体为,通过自定义的注解,在自定义数据Bean中标记API信息,所述自定义Bean用于服务端代码的controller层API方法的出参入参;
11.遍历服务端Controller层方法,自动抓取其函数的入参出参引用;
12.解析出参入参的所有参数,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构;
13.将其遍历解析得到的结果下发到Web客户端,为客户端提供可视化的API技术文档。
为了向客户端展示可视化API技术文档,在浏览器端由Script脚本请求服务端API文档数据,并构建Html代码,在客户端展示Html页面,来展示从服务端请求下来的API文档数据。
图2展示的为本发明的***方框示意图。所述***由两部分构成,分别为自动API文档生成框架部分20,以及常规业务代码部分30。
所述自动API文档生成框架部分包含:
自定义注解模块21,用于标记API信息,并将其编写(标记)在常规业务代码部分30的自定义数据Bean31;
Doc核心解释器22,用于对常规业务代码部分30的SpringMVC Controller32的API方法进行遍历解析,自动抓取其入参出参引用,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构;
API视图层模块27,基于Doc核心解释器22所遍历解析得到的结果,将所述结果下发到Web客户端,为客户端提供可视化的API技术文档;
所述常规业务代码部分包括:
自定义数据Bean31,根据接收到的所述自定义注解模块21发送的内容,对API信息进行标记,Bean31作为常规业务代码,对服务端代码的Controller层进行配置;
SpringMVC Controller32,引用自定义数据Bean31作为函数出参入参,作为业务代码结构33进行业务运算。
另外,所述API视图层模块27通过由Script脚本25构建的Html代码26,来实现向用户提供可视化API技术文档。
所述API文档生成框架部分20还包括通过Servlet23配置的后端代码24,用于相关任务的执行运算;所述Servlet23主要处理web客户端向服务端获取Api文档数据的请求,Servlet是JavaEE的常规模块。
尽管已参照优选实施方式描述了本发明的技术方案,但是本领域技术人员容易理解的是,本发明的保护范围并不局限于这些具体实施方式,在不偏离本发明的基本原理的情况下,可以对所述实施方式以及其中的具体技术特征进行拆分、组合或改变,拆分、组合或改变后的技术方案仍将落入本发明的保护范围之内。

Claims (9)

1.基于SpringMVC的API文档生成方法,其特征在于:
通过自定义的注解,在自定义数据Bean中标记API信息,所述自定义Bean用于服务端代码Controller函数的出参入参;
遍历服务端运行的代码Controller层方法,自动抓取其函数的入参出参引用;
解析出参入参的所有参数,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构;
将其遍历解析得到的结果下发到Web客户端,为开发人员提供可视化的API技术文档。
2.如权利要求1所述的API文档自动生成方法,其中所述自定义注解为原生的Java注解。
3.如权利要求1所述的API文档自动生成方法,其中所述自定义注解由@Doc、@Act,@DataLength,@DataRange四个注解组成,用于描述API字段的属性。
4.如权利要求1所述的API文档自动生成方法,其中所述客户端展示Html页面,用于展示从服务端请求下来的API文档数据。
5.如权利要求1所述的API文档自动生成方法,其中在服务端由Script脚本构建Html代码,来实现向用户提供可视化API技术文档。
6.基于SpringMVC的API文档生成***,该***主要包括自动API文档生成框架部分和常规业务代码部分,其特征在于:
所述自动API文档生成框架部分包含:
自定义注解模块,用于标记API信息,编写在常规业务代码部分的自定义数据Bean;
Doc核心解释器,用于对常规业务代码部分的SpringMVC Controller的API方法进行遍历解析,自动抓取其入参出参引用,生成API文档,通过所述参数对象的相互引用嵌套,自动构建起API的参数层级结构;
API视图层模块,基于Doc核心解释器所遍历解析得到的结果,将所述结果下发到Web客户端,为开发人员提供可视化的API技术文档;
所述常规业务代码部分包括:
自定义数据Bean,用于Controller函数的出参入参;
SpringMVC Controller,引用自定义数据Bean作为函数出参入参,作为业务代码结构进行业务运算。
7.如权利要求5所述的API文档自动生成***,其中所述自定义注解由@Doc、@Act,@DataLength,@DataRange四个注解组成,用于描述API字段的属性。
8.如权利要求5所述的API文档自动生成***,其中所述客户端展示Html页面,用于展示从服务端请求下来的API文档数据。
9.如权利要求5所述的API文档自动生成***,其中所述API视图层模块通过在浏览器端由Script脚本请求服务端API文档数据,并构建Html代码,来实现向用户提供可视化API技术文档。
CN201710800995.3A 2017-09-07 2017-09-07 基于SpringMVC的API文档生成方法及*** Pending CN107515771A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710800995.3A CN107515771A (zh) 2017-09-07 2017-09-07 基于SpringMVC的API文档生成方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710800995.3A CN107515771A (zh) 2017-09-07 2017-09-07 基于SpringMVC的API文档生成方法及***

Publications (1)

Publication Number Publication Date
CN107515771A true CN107515771A (zh) 2017-12-26

Family

ID=60725223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710800995.3A Pending CN107515771A (zh) 2017-09-07 2017-09-07 基于SpringMVC的API文档生成方法及***

Country Status (1)

Country Link
CN (1) CN107515771A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255513A (zh) * 2017-12-28 2018-07-06 平安科技(深圳)有限公司 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质
CN108415834A (zh) * 2018-02-12 2018-08-17 平安科技(深圳)有限公司 注解后端校验方法、装置、计算机设备及存储介质
CN108804103A (zh) * 2018-06-20 2018-11-13 郑州云海信息技术有限公司 一种扫描接口并生成可调用api接口文档的方法
CN109375901A (zh) * 2018-09-03 2019-02-22 平安普惠企业管理有限公司 接口信息管理方法、装置、计算机设备以及存储介质
CN110704030A (zh) * 2019-09-26 2020-01-17 北京达佳互联信息技术有限公司 接口配置信息生成方法、装置、电子设备及存储介质
CN111177240A (zh) * 2019-12-13 2020-05-19 贝壳技术有限公司 API数据导入方法、***以及Mock数据生成方法
CN111274120A (zh) * 2018-12-05 2020-06-12 北京奇虎科技有限公司 一种接口文档的验证方法和装置
CN111767070A (zh) * 2020-06-30 2020-10-13 中国平安财产保险股份有限公司 Api文档管理方法、装置、计算机设备及存储介质
CN113157792A (zh) * 2021-05-10 2021-07-23 中国工商银行股份有限公司 一种接口文档管理***及其工作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126901B2 (en) * 2006-10-19 2012-02-28 International Business Machines Corporation Method and apparatus for generating a dynamic web page
CN104182228A (zh) * 2014-08-22 2014-12-03 徐增超 一种创建网络应用的方法和***
CN104484216A (zh) * 2014-12-29 2015-04-01 广州唯品会网络技术有限公司 服务接口文档和在线测试工具生成方法、装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126901B2 (en) * 2006-10-19 2012-02-28 International Business Machines Corporation Method and apparatus for generating a dynamic web page
CN104182228A (zh) * 2014-08-22 2014-12-03 徐增超 一种创建网络应用的方法和***
CN104484216A (zh) * 2014-12-29 2015-04-01 广州唯品会网络技术有限公司 服务接口文档和在线测试工具生成方法、装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255513A (zh) * 2017-12-28 2018-07-06 平安科技(深圳)有限公司 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质
WO2019127864A1 (zh) * 2017-12-28 2019-07-04 平安科技(深圳)有限公司 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质
CN108415834A (zh) * 2018-02-12 2018-08-17 平安科技(深圳)有限公司 注解后端校验方法、装置、计算机设备及存储介质
CN108804103A (zh) * 2018-06-20 2018-11-13 郑州云海信息技术有限公司 一种扫描接口并生成可调用api接口文档的方法
CN109375901A (zh) * 2018-09-03 2019-02-22 平安普惠企业管理有限公司 接口信息管理方法、装置、计算机设备以及存储介质
CN111274120A (zh) * 2018-12-05 2020-06-12 北京奇虎科技有限公司 一种接口文档的验证方法和装置
CN111274120B (zh) * 2018-12-05 2024-02-02 三六零科技集团有限公司 一种接口文档的验证方法和装置
CN110704030A (zh) * 2019-09-26 2020-01-17 北京达佳互联信息技术有限公司 接口配置信息生成方法、装置、电子设备及存储介质
CN111177240A (zh) * 2019-12-13 2020-05-19 贝壳技术有限公司 API数据导入方法、***以及Mock数据生成方法
CN111767070A (zh) * 2020-06-30 2020-10-13 中国平安财产保险股份有限公司 Api文档管理方法、装置、计算机设备及存储介质
CN113157792A (zh) * 2021-05-10 2021-07-23 中国工商银行股份有限公司 一种接口文档管理***及其工作方法
CN113157792B (zh) * 2021-05-10 2024-04-30 中国工商银行股份有限公司 一种接口文档管理***及其工作方法

Similar Documents

Publication Publication Date Title
CN107515771A (zh) 基于SpringMVC的API文档生成方法及***
CN111506310B (zh) 生成多平台样式的方法、装置、设备及存储介质
CN104484216B (zh) 服务接口文档和在线测试工具生成方法、装置
CN106484393B (zh) 一种可视化视图设计方法
Voelter et al. Supporting Diverse Notations in MPS'Projectional Editor.
CN102262534B (zh) 基于互联网b/s结构的计算机网络游戏开发***及方法
CN105068815A (zh) 页面编辑器交互装置和方法
CN105278946B (zh) 一种RESTful API可视化方法
CN115617327A (zh) 低代码页面搭建***、方法及计算机可读存储介质
CN105447253B (zh) 一种三维工艺数据的集成方法
CN107273117A (zh) 一种编程友好型的敏捷代码自动生成***
CN102339314A (zh) 一种基于xml的跨终端的数据表单描述与展现方法
CN103530407B (zh) 一种富文本文档的生成方法与装置
CN108228180A (zh) 基于可视化界面设计的自动代码生成方法及***
CN102662921B (zh) 一种文档处理方法、装置和编辑器
CN103853735A (zh) Html模板可视化制作、编辑方法及***
CN108920147A (zh) 一种Web页面构建方法、装置、计算设备和存储介质
Da Silva et al. Integration of RE and MDE paradigms: the ProjectIT approach and tools
CN103853737A (zh) Html内容可视化编辑方法及***
Guana et al. Chaintracker, a model-transformation trace analysis tool for code-generation environments
CN104572577A (zh) 数学公式处理方法及装置
Demirli et al. Software language engineering of architectural viewpoints
Guan et al. Front-end and back-end separation-react based framework for networked remote control laboratory
CN105095206A (zh) 信息处理方法以及信息处理装置
CN106599087B (zh) 一种空间信息服务的二次开发方法

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20171226

RJ01 Rejection of invention patent application after publication