天天看點

swagger2線上文檔@validated接口校驗

添加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#!/ 效果如下:

swagger2線上文檔@validated接口校驗
swagger2線上文檔@validated接口校驗

繼續閱讀