添加swagger2依賴如下:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
model 描述 以及簡單校驗:
@ApiModel(description = "使用者對象")
@Data
public class User {
private int id;
@NotNull(message = "name is notnull",groups = Group1.add.class)
@ApiModelProperty(value="使用者名",name="username",required = true)
private String name;
@NotNull(message = "age is notnull")
@ApiModelProperty(value="年齡",name="username" ,required = true)
private int age;
@ApiModelProperty(value="備注",name="username")
private String desc;
}
通過注解描述接口以及添加@validated注解校驗接口model:
@RestController
@RequestMapping("/user")
@Api(tags = {"使用者操作接口"})
public class UserContorller extends BaseContorller {
@ApiOperation("擷取所有使用者")
@GetMapping("/user")
public User getUserAll(){
User user = new User();
user.setId(1);
user.setDesc("這是第一個使用者");
user.setAge(18);
user.setName("大兵");
return user;
}
@ApiOperation("根據使用者id擷取所有使用者")
@GetMapping(value = "/user/{id}")
public User getUserById(@PathVariable("id") int id){
System.out.println(id);
User user = new User();
user.setId(2);
user.setDesc("這是第一個使用者");
user.setAge(19);
user.setName("大兵");
return user;
}
@ApiOperation("添加使用者資訊")
@PostMapping("/user")
public int saveUser(@RequestBody @ApiParam(value = "json/application",required = true) @Validated(Group1.add.class) User user){
System.out.println(user.toString());
return 1;
}
最後配置Swagger2:
@Configuration
@EnableSwagger2 //swagger注解,,開啟
public class Swagger2Config {
@Bean
public Docket buildDocket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(buildApiInf())
.select()
.apis(RequestHandlerSelectors.basePackage("com.test.swagger2.contorller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo buildApiInf(){
return new ApiInfoBuilder()
.title("接口文檔")
// .description("springboot swagger2")
/*.termsOfServiceUrl("http://blog.csdn.net/u014231523網址連結")
.contact(new Contact("diaoxingguo", "http://blog.csdn.net/u014231523", "[email protected]"))*/
.build();
}
//2.0以後使用ApiInfoBuilder().build();
@Bean
public ApiInfo buildApiInfo(){
return new ApiInfoBuilder().build();
}
}
通路http://localhost:8080/swagger-ui.html#!/ 效果如下: