一、配置API文档的分组
沿用上一篇博客项目
groupName()
@Bean
public Docket docket(Environment environment){
//设置要显示的Swagger环境
Profiles profiles = Profiles.of("dev", "test");
//通过environment.acceptsProfiles()判读是否处在自己设定的环境中
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("Massimo")
//enable(),是否启动Swagger,默认为true,如果为false,则Swagger不能在浏览器中访问
.enable(flag)
.select()
.apis(RequestHandlerSelectors.basePackage("com.massimo.swagger.controller"))
.build();
}
效果:
二、配置多个分组
创建多个Docket实例
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3(){
return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}
效果:
三、实体类配置
3.1、创建实体类
package com.massimo.swagger.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel("用户实体类") //等价于@Api(注释)
public class User {
@ApiModelProperty("用户名")
public String username;
@ApiModelProperty("密码")
public String password;
}
3.2、Controller
//只要我们的接口中,返回值存在实体类,他就会被扫描到swagger中
@PostMapping(value = "/user")
public User user(){
return new User();
}
效果:
四、接口配置
4.1、Controller
@RestController
public class HelloController {
@GetMapping(value = "/hello")
public String hello(){
return "hello";
}
//只要我们的接口中,返回值存在实体类,他就会被扫描到swagger中
@PostMapping(value = "/user")
public User user(){
return new User();
}
//Operation接口
@ApiOperation("Hello控制类")
@GetMapping(value = "/hello2")
public String hello2(@ApiParam("用户名") String username){
return "hello" + username;
}
@ApiOperation("Post测试")
@PostMapping(value = "/postt")
public User postt(@ApiParam("用户") User user){
int i = 1/0;
return user;
}
}
效果
五、小结
- 我们可以通过Swagger给一些比较难理解的属性或者接口, 增加注释信息
- 接口文档实时更新
- 可以在线测试