CN110532028A - 一种基于eclipse生成接口文档的方法 - Google Patents
一种基于eclipse生成接口文档的方法 Download PDFInfo
- Publication number
- CN110532028A CN110532028A CN201910816434.1A CN201910816434A CN110532028A CN 110532028 A CN110532028 A CN 110532028A CN 201910816434 A CN201910816434 A CN 201910816434A CN 110532028 A CN110532028 A CN 110532028A
- Authority
- CN
- China
- Prior art keywords
- interface
- mapping
- swagger
- configuration
- eclipse
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 230000009466 transformation Effects 0.000 claims abstract description 28
- 238000012216 screening Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 2
- 230000003252 repetitive effect Effects 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 6
- 241000208340 Araliaceae Species 0.000 description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 description 4
- 235000008434 ginseng Nutrition 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012407 engineering method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种基于eclipse生成接口文档的方法,包括以下步骤:S1、调用eclipse扩展插件;S2、筛选接口类;S3、从筛选得到的接口类中,筛选出mapping接口;S4、判断筛选得到的mapping接口是否需要改造,若判断为是,则执行步骤S5,否则执行步骤S7;S5、对mapping接口进行相应的swagger配置;S6、对mapping接口的方法参数进行相应的swagger配置,之后在该mapping接口预设的位置记录改造标记;S7、判断是否完成对所有mapping接口的改造,若判断为是,则执行步骤S8,否则返回步骤S2;S8、生成接口文档。与现有技术相比,本发明利用eclipse平台的插件功能,能够对现有文档进行一次性批量改造,实现自动快速生成接口文档的目的,相比于传统手动重复操作,有效降低了操作繁琐程度、提高了工作效率。
Description
技术领域
本发明涉及软件开发技术领域,尤其是涉及一种基于eclipse生成接口文档的方法。
背景技术
为解决传统一体化架构的不灵活、不可扩展及迭代速度慢等缺点,出现了一种新的软件架构方式——微服务,具体来说,微服务架构将应用和服务分解成更小的、松散耦合的组件,在微服务架构中,每个服务都是自我包含的,并且具有单一的业务功能,使用微服务架构后,每个功能都被分配给了不同的微服务,这些微服务会处理它们自己的数据、执行不同的功能,这些由微服务执行的功能通过API(Application Programming Interface,应用程序接口)传达给用户,所有内部节点都被连接到API,而所有连接到API的用户都会自动与系统连接。
微服务架构实际是一种前后端分离架构,前后端分离的设计使得前端与后端、后端与后端之间的交互变得越来越频繁,因此接口文档的编写、维护、实时更新也就越发重要。常规的创建文档、编辑文档,以及借助版本控制保存文档的方式,只能对接口文档的存储进行管理;此外,在实际应用中,接口都是经常变化的,这就需要接口编写者及时更新接口文档,但是频繁地更新接口文档必然会花费大量的开发时间。swagger的出现在某种程度上解决了这些问题,swagger提供了一套完整的接口文档解决方案,用于生成、描述、调用和可视化RESTful风格的Web服务,通过将文件的方法、参数和模型紧密集成到服务器端的代码,从而使API始终保持同步更新。
但是现存的大量系统并未都接入swagger,如图1所示,在生成接口文档时,需要判断该接口文档是否进行过swagger配置,若判断为是,则需要依次对指定接口及方法、指定接口参数对象增加注解;
若判断为否,则需要先引入swagger相关jar包,之后添加文档摘要相关配置类,再依次对所有接口及方法、所有接口参数对象增加注解;
在手动重复上述步骤之后,最终将生成的接口文档以Web-UI形式展示给用户。
可见,现有的生成接口文档方法是一种采用人工手动方式进行重复操作的方法,需要对存量的接口挨个进行改造,这必然会增加开发人员的工作繁琐程度、降低工作效率,而依靠手动的操作方式,在操作过程中可能出现差错,最终导致生成接口文档失败,不利于接口文档的升级迭代。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于eclipse生成接口文档的方法,利用eclipse开发平台的插件功能,实现自动生成接口文档的目的。
本发明的目的可以通过以下技术方案来实现:一种基于eclipse生成接口文档的方法,包括以下步骤:
S1、调用eclipse扩展插件;
S2、筛选接口类;
S3、从筛选得到的接口类中,筛选出mapping接口;
S4、判断筛选得到的mapping接口是否需要改造,若判断为是,则执行步骤S5,否则执行步骤S7;
S5、对mapping接口进行相应的swagger配置;
S6、对mapping接口的方法参数进行相应的swagger配置,之后在该mapping接口预设的位置记录改造标记;
S7、判断是否完成对所有mapping接口的改造,若判断为是,则执行步骤S8,否则返回步骤S2;
S8、生成接口文档。
进一步地,所述步骤S2具体是筛选出使用springmvc框架定义的接口类。
进一步地,所述步骤S3具体是从筛选得到的接口类中,使用jdt解析筛选出对应的mapping接口。
进一步地,所述步骤S4具体是判断筛选得到的mapping接口是否存在改造标记,若不存在改造标记,则该mapping接口需要改造,执行步骤S5;若存在改造标记,则该mapping接口不需要改造,执行步骤S7。
进一步地,所述步骤S5具体包括以下步骤:
S51、通过jdt解析mapping接口类文件,得到对应的mapping接口方法;
S52、对mapping接口方法进行swagger配置相关的代码改造,完成对mapping接口相应的swagger配置。
进一步地,所述步骤S6具体包括以下步骤:
S61、筛选mapping接口对应的方法参数,得到基本形参和对象形参;
S62、分别对基本形参和对象形参进行swagger配置,完成对mapping接口的方法参数进行相应的swagger配置;
S63、在该mapping接口预设的位置记录改造标记。
进一步地,所述步骤S62中对基本形参进行swagger配置具体是直接为基本形参增加swagger配置。
进一步地,所述步骤S62中对对象形参进行swagger配置的具体过程为:
S621、寻找对象形参类文件;
S622、通过jdt解析对象形参类文件,得到对应的对象属性;
S623、为对象属性增加swagger配置。
与现有技术相比,本发明具有以下优点:
一、本发明利用eclipse平台的插件功能,实现自动生成接口文档的目的,简化了开发人员的开发步骤、节省了开发时间,有利于开发人员对现有接口文档方便地进行改造和维护。
二、本发明通过自动筛选接口、自动寻找类文件和自动解析类文件,以完成对接口的swagger配置,相比于传统手动重复操作,能够有效降低操作繁琐程度、提高工作效率。
三、本发明采用记录改造标记的方式,有利于后续升级迭代时不会出现重复改造或者遗漏改造的差错,进一步降低了维护成本。
附图说明
图1为现有技术生成接口文档的方法示意图;
图2为本发明生成接口文档的方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
如图2所示,一种基于eclipse生成接口文档的方法,包括以下步骤:
S1、调用eclipse扩展插件,具体是为开发工具eclipse扩展插件,使开发界面中能够调用该插件功能;
S2、筛选接口类,具体是筛选出使用springmvc框架定义的接口类;
S3、从筛选得到的接口类中,筛选出mapping接口,具体是使用jdt解析筛选出对应的mapping接口;
S4、判断筛选得到的mapping接口是否需要改造,若判断为是,则执行步骤S5,否则执行步骤S7;
S5、对mapping接口进行相应的swagger配置:首先从步骤S2中筛选得到的接口类中找到mapping接口类文件,之后通过jdt解析mapping接口类文件,得到对应的mapping接口方法,最后对mapping接口方法进行swagger配置相关的代码改造,完成对mapping接口相应的swagger配置;
S6、对mapping接口的方法参数进行相应的swagger配置,之后在该mapping接口预设的位置记录改造标记:针对每个mapping接口方法筛选对应的请求入参,基本类型的入参是通过直接改造方法增加swagger配置,对象型入参则需要单独进行类解析改造,为类的对象属性增加swagger配置,最后在该mapping接口预设的位置记录改造标记;
S7、判断是否完成对所有mapping接口的改造,若判断为是,则执行步骤S8,否则返回步骤S2。
S8、生成接口文档。
其中,步骤S4具体是判断筛选得到的mapping接口是否存在改造标记,若不存在改造标记,则该mapping接口需要改造,执行步骤S5;若存在改造标记,则该mapping接口不需要改造,执行步骤S7,这样,如果原工程中已经使用swagger管理API接口文档,则本发明方法将不会对该接口文档做任何改动,如果接口改动了入参,则本发明方法只会单独对需要修改的部分进行改造。
本实施例在生成接口文档时,使用了四种swagger配置,包括第一swagger配置、第二swagger配置、第三swagger配置和第四swagger配置,其中,第一至第三swagger配置用于改造mapping接口,第第swagger配置用于改造mapping接口的方法参数,采用本发明方法生成接口文档,能够针对项目进行一次性批量的改造,节省了开发时间成本;并且通过生成统一的文档结构,有利于微服务扩展与调用,进一步减少前端与后端、后端与后端之间的沟通成本;此外,自动快速生成接口文档,使得接口文档的实时性能跟上接口的升级迭代,减少了维护成本。
Claims (8)
1.一种基于eclipse生成接口文档的方法,其特征在于,包括以下步骤:
S1、调用eclipse扩展插件;
S2、筛选接口类;
S3、从筛选得到的接口类中,筛选出mapping接口;
S4、判断筛选得到的mapping接口是否需要改造,若判断为是,则执行步骤S5,否则执行步骤S7;
S5、对mapping接口进行相应的swagger配置;
S6、对mapping接口的方法参数进行相应的swagger配置,之后在该mapping接口预设的位置记录改造标记;
S7、判断是否完成对所有mapping接口的改造,若判断为是,则执行步骤S8,否则返回步骤S2;
S8、生成接口文档。
2.根据权利要求1所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S2具体是筛选出使用springmvc框架定义的接口类。
3.根据权利要求1所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S3具体是从筛选得到的接口类中,使用jdt解析筛选出对应的mapping接口。
4.根据权利要求1所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S4具体是判断筛选得到的mapping接口是否存在改造标记,若不存在改造标记,则该mapping接口需要改造,执行步骤S5;若存在改造标记,则该mapping接口不需要改造,执行步骤S7。
5.根据权利要求1所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S5具体包括以下步骤:
S51、通过jdt解析mapping接口类文件,得到对应的mapping接口方法;
S52、对mapping接口方法进行swagger配置相关的代码改造,完成对mapping接口相应的swagger配置。
6.根据权利要求1所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S6具体包括以下步骤:
S61、筛选mapping接口对应的方法参数,得到基本形参和对象形参;
S62、分别对基本形参和对象形参进行swagger配置,完成对mapping接口的方法参数进行相应的swagger配置;
S63、在该mapping接口预设的位置记录改造标记。
7.根据权利要求6所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S62中对基本形参进行swagger配置具体是直接为基本形参增加swagger配置。
8.根据权利要求6所述的一种基于eclipse生成接口文档的方法,其特征在于,所述步骤S62中对对象形参进行swagger配置的具体过程为:
S621、寻找对象形参类文件;
S622、通过jdt解析对象形参类文件,得到对应的对象属性;
S623、为对象属性增加swagger配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910816434.1A CN110532028B (zh) | 2019-08-30 | 2019-08-30 | 一种基于eclipse生成接口文档的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910816434.1A CN110532028B (zh) | 2019-08-30 | 2019-08-30 | 一种基于eclipse生成接口文档的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532028A true CN110532028A (zh) | 2019-12-03 |
CN110532028B CN110532028B (zh) | 2023-11-21 |
Family
ID=68665674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910816434.1A Active CN110532028B (zh) | 2019-08-30 | 2019-08-30 | 一种基于eclipse生成接口文档的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532028B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012203456A (ja) * | 2011-03-23 | 2012-10-22 | Hitachi Ltd | 文書検索システム、文書検索方法、及びプログラム |
WO2017109386A1 (fr) * | 2015-12-21 | 2017-06-29 | Valeo Equipements Electriques Moteur | Procede hors ligne d'allocation d'un logiciel embarque temps reel sur une architecture multicontrôleur multicoeur, et son utilisation pour des applications embarquees dans un vehicule automobile |
CN107463376A (zh) * | 2017-07-21 | 2017-12-12 | 珠海牛角科技有限公司 | 基于Javadoc的自动生成后端接口文档的方法及装置 |
WO2018033063A1 (zh) * | 2016-08-16 | 2018-02-22 | 中兴通讯股份有限公司 | 接口文件解析方法和装置 |
CN108932122A (zh) * | 2018-06-19 | 2018-12-04 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 接口文档生成方法、装置、计算机设备和存储介质 |
US20190034199A1 (en) * | 2017-07-27 | 2019-01-31 | Tibco Software Inc. | Auto-generation of application programming interface (api) documentation via implementation-neutral analysis of api traffic |
CN109725894A (zh) * | 2018-12-24 | 2019-05-07 | 杭州费尔斯通科技有限公司 | 一种基于java语言的elasticsearch代码生成方法及工具 |
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
-
2019
- 2019-08-30 CN CN201910816434.1A patent/CN110532028B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012203456A (ja) * | 2011-03-23 | 2012-10-22 | Hitachi Ltd | 文書検索システム、文書検索方法、及びプログラム |
WO2017109386A1 (fr) * | 2015-12-21 | 2017-06-29 | Valeo Equipements Electriques Moteur | Procede hors ligne d'allocation d'un logiciel embarque temps reel sur une architecture multicontrôleur multicoeur, et son utilisation pour des applications embarquees dans un vehicule automobile |
WO2018033063A1 (zh) * | 2016-08-16 | 2018-02-22 | 中兴通讯股份有限公司 | 接口文件解析方法和装置 |
CN107463376A (zh) * | 2017-07-21 | 2017-12-12 | 珠海牛角科技有限公司 | 基于Javadoc的自动生成后端接口文档的方法及装置 |
US20190034199A1 (en) * | 2017-07-27 | 2019-01-31 | Tibco Software Inc. | Auto-generation of application programming interface (api) documentation via implementation-neutral analysis of api traffic |
CN108932122A (zh) * | 2018-06-19 | 2018-12-04 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 接口文档生成方法、装置、计算机设备和存储介质 |
CN109725894A (zh) * | 2018-12-24 | 2019-05-07 | 杭州费尔斯通科技有限公司 | 一种基于java语言的elasticsearch代码生成方法及工具 |
CN110162296A (zh) * | 2019-04-15 | 2019-08-23 | 平安科技(深圳)有限公司 | 应用程序编程接口文档的生成方法、装置及终端设备 |
Non-Patent Citations (5)
Title |
---|
ANIRUDH SANTHIAR 等: "Discovering Math APIs by Mining Unit Tests", 《FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING. FASE 2013. LECTURE NOTES IN COMPUTER SCIENCE》, vol. 7793 * |
吴振宇 等: "协议可扩展的软件接口测试工具的研究与实现", 《数字技术与应用》, no. 12 * |
李正 等: "API使用的关键问题研究", 《软件学报》, no. 06 * |
青春季风暴: "swagger使用和教程", 《HTTPS://BLOG.CSDN.NET/PZQ915981048/ARTICLE/DETAILS/82864872》 * |
青春季风暴: "swagger使用和教程", 《HTTPS://BLOG.CSDN.NET/PZQ915981048/ARTICLE/DETAILS/82864872》, 27 September 2018 (2018-09-27), pages 1 - 5 * |
Also Published As
Publication number | Publication date |
---|---|
CN110532028B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7010780B2 (en) | Method and system for software modularization and automatic code generation for embedded systems | |
US20120254828A1 (en) | Flexible Modeling Architecture For Management Systems | |
CN110147225A (zh) | 一种代码生成方法、装置及计算机设备、存储介质 | |
US20050050311A1 (en) | Pluggable state meta-data processors based on meta information modeling in a service oriented architecture | |
WO2020182893A1 (en) | System and method for interoperable communication of an automation system component with multiple information sources | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
US20060123393A1 (en) | User interface for network application | |
US7093264B2 (en) | Method and apparatus for assembling Enterprise JavaBeans components | |
CN102880493B (zh) | 一种构件间动态依赖关系的自动分析方法 | |
CN111176627A (zh) | 一种基于微服务的前后端分离的装置与方法 | |
CN109710631A (zh) | 辅助生成sql代码的方法、装置、设备及计算机存储介质 | |
US20070220159A1 (en) | Tool for data generation for Simple Network Management Protocol (SNMP) | |
CN105335161B (zh) | 一种从tasm时间抽象状态机到扩展nta自动机的转换方法 | |
JP2006065811A (ja) | リソース管理方法、装置及びプログラム | |
US8126961B2 (en) | Integration of client and server development environments | |
CN109582391A (zh) | 一种基于xml的设备树配置方法 | |
US7603650B2 (en) | Methods and systems for managing networks | |
US20070220157A1 (en) | Simple network management protocol (SNMP) agent system and method | |
CN109033483B (zh) | 一种在yang模型中定义数据关系的方法、装置及系统 | |
CN103793240A (zh) | 接口扫描方法、接口扫描装置及相应的插件更新方法 | |
JP4836412B2 (ja) | グラフィカル・ユーザ・インタフェースを生成する方法および装置 | |
CN110532028A (zh) | 一种基于eclipse生成接口文档的方法 | |
CN107943477A (zh) | 一种iOS上通过XML实现UI布局的方法 | |
WO2009109134A1 (zh) | 安装或升级方法和装置 | |
CN100454845C (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |