시작하며
현재 사용하고 있는방법을 기록해두고 더 좋은 코드를 찾을시 비교하기위한 기록용이다.
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, "노출 시작 일자가 종료 일자 보다 늦을 수 없습니다.");
}