概述
本文主要介绍如何使用swagger生成离线API。
项目架构
spring-boot-2.0 + swagger-2.8.0 .
需要哪些要素
3个配置文件
- 静态文件StaticResourceFile,将静态文件中的文件夹放到/src目录下。
- pom.xml 文件增加文档生成配置。
- 增加JUNIT测试类,用于在使用mvn test命令时生成swagger.json文件,和生成配置文件。
如何使用
- 将静态文件中的文件夹放到/src目录下。
- 增加pom.xml 配置和文档路径配置。
- 增加Swagger2MarkupTest.java到test目录,并且Swagger2MarkupTest.java包名称和项目启动类包名称保持一致。
- 运行run maven test命令即可。
文件目录结构如下
这是项目结构,其中src中三个目录还有,测试类是必须的。
实现原理
使用MOCK调用接口,生成swagger.json以及swagger的其他参数,再通过swagger.json转化为接口文档
- 先利用
SpringFox
库生成RESTful API
- 再利用
Swagger2Markup
Maven插件生成asciidoc
文档- 最后利用
asciidoctor
Maven插件生成 html 或 pdf 文件
资源文件地址
便利
github上有一些项目基于swagger2.6以上做了文档自动生成,只需要生成文档目标项目swaggerapi接口地址即可生成相关接口文档。
项目名swagger2pdf
备注
上面说明可以生成单个项目所需的离线文档,不是很方便,不建议将要生成文档的项目源码整合到本项目,这样做比较麻烦,需要每个项目都加。
比较好的做法是,新增一个项目用来单独生成swagger离线文档。
- 首先你的项目要确保是
spring boot
的,并且集成了swagger
,接口层和入参出参实体类加了swagger
的相关注解,且能正确跑起来; - 然后将本项目的
src/test/java
下com.example.swagger2pdf
中的Swagger2PdfTest
类中的注释放开,将生成当前项目的swagger.json
的代码注释掉。 - 将
url
中的ip
和port
换成自己要生成文档的项目的ip
和port
,这里要确保这个url
直接访问有数据返回,不然是无法生成文档的; - 最后按上面说的运行项目即可生成文档。
总结
swagger2.6.1版本之后的生成规则有些不一样,暂时没去研究。