1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【SpringBoot系列】最详细demo-- 集成Swagger2

【SpringBoot系列】最详细demo-- 集成Swagger2

时间:2020-02-13 00:54:48

相关推荐

【SpringBoot系列】最详细demo-- 集成Swagger2

Swagger是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千计的开发人员, 使用几乎所有的现代编程语言,都在支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档, 自动生成代码的SDK以及API的发现特性等。

Swagger2可以利用注解快速、自动地生成接口文档页面,方便调用方查阅!

这一篇讲解如何在Spring Boot中集成Swagger2.

先来张效果图:

可以看到Swagger-Ui是以controller分类,点击一个controller可以看到其中的具体接口,再点击接口就可以看到接口的信息了,如图:

我们可以看到该接口的请求方式,返回数据信息和需要传递的参数.而且以上数据是自动生成的,即使代码有一些修改, Swagger文档也会自动同步修改.非常的方便。

构建RESTful API

在使用Swagger2前我们需要有一个RESTful API的项目,Spring Boot创建RESTful API项目非常的方便和快速。

Spring Boot构建RESTful API极为简单,实际就是Spring MVC。

比如我的机具管理API如下,提供了3个接口:

添加Swagger2依赖

maven依赖:

我自己也定制过一个ui,github地址:/yidao620c/springfox-swagger-ui

创建Swagger2的Java配置类

通过@Configuration注解,表明它是一个配置类,@EnableSwagger2注解开启swagger2。apiInfo()方法配置一些基本的信息。createRestApi()方法指定扫描的包会生成文档, 默认是显示所有接口,可以用@ApiIgnore注解标识该接口不显示。

添加Swagger2注解

通过在接口上面添加注解方式可配置丰富接口的信息,先看一个例子:

Swagger2提供了一些注解来丰富接口的信息,常用的有:

说明:

@Api:用在类上,说明该类的作用@ApiOperation:用在方法上,说明方法的作用@ApiImplicitParams:用在方法上包含一组参数说明@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面 paramType:参数放在哪个地方 header–>请求参数的获取:@RequestHeaderquery–>请求参数的获取:@RequestParampath(用于restful接口)–>请求参数的获取:@PathVariablebody(不常用)form(不常用)name:参数名dataType:参数类型required:参数是否必须传value:参数的意思defaultValue:参数的默认值@ApiResponses:用于表示一组响应@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息 code:数字,例如400message:信息,例如”请求参数没填好”response:抛出异常的类@ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)@ApiModelProperty:描述一个model的属性

以上这些就是最常用的几个注解了。

具体其他的注解,查看:

/swagger-api/swagger-core/wiki/Annotations#apimodel

更多请参考Swagger注解文档

与Shiro集成配置

注意如果Spring Boot使用过Shiro或Spring Security框架,需要将相应的URL访问权限放开,以Shiro为例,添加匿名访问过滤器:

访问SwaggerUI

访问http://localhost:8080/swagger-ui.html页面查看API文档

如果使用的是swagger-bootstrap-ui,请访问http://localhost:8080/doc.html

生成PDF文档

参考我的另一篇文章使用Swagger生成RESTful API文档

这里我通过SpringBoot + Swagger2方式来生成AsciiDoc,然后剩下的步骤和上面博客一样。

maven依赖

另外修改下surefire插件,增加2个系统属性,也就是swagger.json和adoc文件生成的位置:

编写单元测试方法

原理是通过SpringBoot的MockMvc启动后访问/v2/api-docs,这个是Swagger的接口数据,然后保存为swagger.json

执行之后会在resources/swagger/下面生成swagger.adoc,在swagger.adoc的顶部加入:

注意有个空行分割,目的是左边导航菜单是3级,并且自动加序号。为了美化显示,根据你的需要调整表格宽度,比如

替换成:

然后在/resources目录下面执行:

更详细的安装字体和asciidoctor-pdf命令的方法,请参考上面的博客,将adoc文件转换成好看的PDF。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。