JSR-303 그리고 validation

Bean Validation 1.0 은 JSR-303이고 Bean Validation 2.0 은 JSR-380이다.

우리는 특정 값이 null 을 허용하지 않고 싶다. 그러면 아래와 같이 @notnull 하나 추가하면 바로 해결된다.

@Data
@ApiModel(description="User Model")
public class User {

    @ApiModelProperty("user 식별자")
    private Long id;

    @NotNull
    @ApiModelProperty("user 이름")
    private String name;

    @NotNull
    @ApiModelProperty("user 나이")
    private Integer age;

}

체크해야 되는 부분에서 @Valid 어노테이션을 달아준다.

@PostMapping("/")
@ApiOperation(value = "사용자 생성", notes = "user model 세팅된 값으로 사용자 생성")
public String postUser(@Valid @RequestBody User user) {
    users.put(user.getId(), user);
    return "success";
}

cUrl 로 요청을 해본다.

결과

다른것도 체크해보자. 문자열 길이, 수자크기, 포맷 등.

어노테이션 하나로 if ... else 과정을 건너뛸수있어서 참 편리하다.

끝!

Last updated