Backend/Spring

유효성검사

seung_soos 2023. 5. 6. 16:53

시작하며

현재 사용하고 있는방법을 기록해두고 더 좋은 코드를 찾을시 비교하기위한 기록용이다.

 

ex)

 @RequestPart(required = false, value = "img_file") MultipartFile imgFile
            , @Valid @RequestPart(value = "data") InsertRequest insertRequest
            , BindingResult bindingResult

1차. 입력값의 유무

if (insertRequest == null){
            throw  new RootException(ApiStatusCode.BAD_REQUEST, "잘못된 정보입니다.");
        }

2차. 입력값의 이상유무

       BidingResult를 사용하여 최초의 Request값에 대한 검증을 한다.

 

Request객체의 검증 어노테이션을 활용한다.

@NotNull, @NotBlank, @NotEmpty, @Size, @Min, @Max 등 

 if (bindingResult.hasErrors()) {
            log.info("BindingResult hasErrors");
            throw new RootException(ApiStatusCode.BAD_REQUEST,  "잘못된 정보입니다.");
        }

 

3차. Service 계층 세부 내용검증

 if (insertRequest.getStartDt().compareTo(insertRequest.getEndDt()) >= 1) {
            //0이면같음, 음수면 정상
            throw new RootException(ApiStatusCode.BAD_REQUEST, "노출 시작 일자가 종료 일자 보다 늦을 수 없습니다.");
        }