原创文章, 转载请私信. 订阅号 tastejava 学习加思考, 仔细品味java之美
网络上有很多swagger的博客,往往都是复制来复制去,随便粘几个api,遗失了很多实际应用中必要的元素,不满足实际生产环境需要.下面分享出我的最佳实践,供大家参考.转载请注明出处.
swagger介绍
swagger是一个开源免费的后端接口文档解决方案, 可以通过全注解方式实现注释. 简化前后端沟通成本, 提供生成详细文档, 接口请求测试等能力. Swagger官方网站
应用场景
- 前后端分离项目
- 向接口调用方实现全面的接口路径,请求参数,返回结果等注释信息
- 让接口调用方方便高效的模拟访问接口
- 后台开发通过全注解形式编写注释信息,无需多余的xml, json配置
- 为项目提供统一的返回格式规范
SpringBoot2.x整合Swagger2
引入Maven依赖
此处Swagger2采用2.9.2版本, Swagger2.6.1版本存在bug, 当controller的tag注释为中文时,点击controller无法展开方法列表
<!--swagger2后台逻辑依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger2可视化界面依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
添加Swagger2基本配置
@Configuration
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
// 获取项目基本信息
.apiInfo(apiInfo())
// 获得api选择器builder
.select()
// 只扫描类上面有@RestController注解的类包含的接口
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class