springdoc--spring系统自动生成接口文档(概述)

背景

在传统的公司里,传统的spring项目里,会出现接口文档丢失,遗漏,谬误的情况。那么有没有什么办法能一键生成准确的接口文档?目前比较常用的管理工具是swagger,但是存在一个问题是说老的代码很多没有采用swagger注解的方式,肉眼可见在传统企业的数字化转型中会有很多这样的系统,所以想开发一个小工具,基于代码,不需要任何侵入性生成接口文档。

相关工具

swagger

swagger 通过注解接口生成文档,包括接口名,请求方法,参数,返回信息等。但是老系统代码改造,存在一定困难。springfox支持如下注解:

详见

javaparser

javaparser将java源码解析为一棵语法树,然后基于这棵树对java代码进行分析和修改的工具。其可以认为是一个静态的代码分析工具,常用于做代码规范检查,代码格式化,java代码分析等。依赖于AST语法树,可以用来作为接口文档自动化工具。业内很多工具依赖于javaparser,比较知名的有JApiDocs, 对比与swagger,主要优势为:

无须swagger中必须的注解,核心依赖于较为基础的javadoc,形如下图格式即可生成文档。

如上图可以看出,还是需要依赖@param指出参数类型,虽然通常来说IDEA会帮我们自动完成该步骤,但是还有可能未标识@param。

想要达成的目标

能否完全不依赖新加的注解,即无须对代码进行任何改动,生成准确的接口文档。最终达成如下图效果(已达成)

 技术思路

    设计接口的数据结构 基于spring IOC机制获取所有接口清单 处理接口URI,type,name等基础信息 基于java reflection 处理接口入参,分为query参数,body参数 基于java reflection 处理接口出参 处理出参的泛型场景 基于模板引擎生成离线markdown格式接口文档

此下为目前还未实现的思路

    依赖javaparser抓取注释内容
经验分享 程序员 微信小程序 职场和发展