ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [RESTful Service] Validation 사용
    개발/Spring boot 2021. 7. 14. 21:48

     

    도메인에 적절한 validation 어노테이션을 추가하여 사용한다. 

    @AssertFalse: false 이어야 한다. 
    @AssertTrue: true 이어야 한다.
    @DecimalMax(value=, inclusive=): inclusive=false 이면 지정된 최대값 보다 작은지 확인, inclusive=true 이면 값이 지정된 최대값보다 작거나 같은지 확인한다. 
    @DecimalMin(value=, inclusive=):  inclusive=false이면 지정된 최소값 보다 큰지 확인, inclusive=true 이면 값이 지정된 최소값보다 크나 같은지 확인한다.
    @Digits(integer=, fraction=): integer=와 fraction=에 의해 지정된 자리수의 숫자인지 확인합니다
    @Email: 유효한 이메일 형식인지 확인한다.
    @Future: 날짜가 미래인지 확인한다.
    @FutureOrPresent: 날짜가 미래인지 또는 현재인지 확인한다.
    @Max(value=): 지정된 최대값 보다 작거나 같은지 확인한다.
    @Min(value=): 지정된 최소값 보다 크거나 같은지 확인한다.
    @Negative: 음수인지 확인한다.
    @NegativeOrZero: 음수 또는 0인지 확인한다.
    @NotBlank: null이 아니고 trim 된 길이가 0보다 큰지 확인한다.
    @NotEmpty: null, 빈값인지 확인한다.
    @NotNull: null이 아닌지 확인한다. 
    @Null: null인지 확인한다.
    @Past: 날짜가 과거인지 확인한다.
    @PastOrPresent: 날짜가 과거 또는 현재인지 확인한다.
    @Pattern(regex=, flags=): 주어진 플래그 매치를 고려하여 값이 정규식 regex와 일치하는지 검사한다.
    @Positive: 양수인지 확인한다.
    @PositiveOrZero: 양수이거나 0인지 확인한다.
    @Size(min=, max=): min=과 max= 사이에 있는지 확인한다.

    적용코드는 아래와 같다. 

    @PostMapping(path = "/users")
        public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
            URI location = ServletUriComponentsBuilder.fromCurrentRequest()
                    .path("/{id}")
                    .buildAndExpand(savedUser.getId())
                    .toUri();
            return ResponseEntity.created(location).build();
        }
    @Data
    @AllArgsConstructor
    public class User {
        private Integer id;
    
        @Size(min=2, message="Name은 2글자 이상 입력해 주세요.")
        private String name;
        
        @Past
        private Date joinDate;
    }

     

     


    출처: https://offbyone.tistory.com/281 [쉬고 싶은 개발자]

    반응형

    댓글

Designed by Tistory.