SpringBoot集成Swagger

在项目中引入Swagger,方便前后端进行接口的定义、测试和联调

引入依赖

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.lemon.swagger"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("api文档")
.description("RESTFUL接口")
.version("1.0").build();
}
}

@EnableSwagger2

启动Swagger

Docket

制定配置信息和扫描包的路径

测试

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
@RequestMapping("/api/test")
public class TestController {

@RequestMapping(value = "/show", method = RequestMethod.POST)
@ApiOperation(value = "测试接口", notes = "测试接口详细描述")
public String show(
@ApiParam(required = true, name = "name", value = "姓名")
@RequestParam(name = "name") String strName) {
return "输入的姓名为------->" + strName;
}
}

启动项目,在浏览器上输入访问地址http://127.0.0.1:8080/swagger-ui.html即可

Swagger常用注解

  • @Api 作用在类上,说明该类的作用
  • @ApiOperation 作用在方法上,说明方法的作用,标注在具体的请求上,value和notes作用差不多,都是对请求进行说明,tags则是对请求进行分类的,比如你有好几个controller,分别属于不同的功能模块,那这里我们就可以使用tags来区分了
  • @ApiImplicitParams 用在方法上包含一组参数说明
  • @ApiImplicitParam 用在@ApiImplicitParams注解中,制定一个请求参数的各个方面
  • @ApiResponses 用于表示一组响应
  • @ApiResponse 用在@ApiResponses中,一版用于表达一个错误的响应信息
  • @ApiModel 描述一个Model的信息,表明这是一个被swagger框架管理的model,用于class上