지난 글에서는 검색 시 가장 많이 나오는 custom validator를 생성하여 List 객체의 validation 체크를 하였다. 하지만 현재 Rest API를 사용할때 JSON형식으로 주고받고 있기 때문에 이것을 형식을 유지하고 custom validator를 사용하지 않는 쉬운 방식을 써보고자 한다.
List를 직접 받지 않고 Request용 DTO Class를 만들어서 List를 받도록 포함하면된다.
Controller
public ResponseEntity<CommonResponse<Object>> updateFaqCategoryOrder(
@RequestBody @Valid FaqRequest request) {
...
}
Request DTO
List에 @Valid를 붙어야 FaqOrder 객체 내부에 @NotNull과 같은 조건이 제대로 먹힌다.
@Data
public class FaqRequest {
@Schema(type = "List")
@Valid
@NotEmpty
private List<FaqOrder> faqOrders;
}
FaqOrder
public class FaqOrder {
@NotNull
private Long id;
@NotNull
private Integer sortNo;
}