1. 자료 설명


정렬 조건, 정렬 방향 실제 요청 값 확인

현재 프론트엔드 코드 로직상 sortBy, sortDirection 매핑 값 확인

Sort 클래스의 Sort.Direction 은 “ASC”, “DESC”만 지원하므로 “ASCENDING”, “DESCENDING”을 변환할 필요가 있음

query param JSON body
addFormatters (Converter)
@JsonCreator

임의로 WebConfig 클래스를 추가 후 프론트에서 들어오는 값들을 Enum으로 매핑함

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(String.class, Sort.Direction.class, value -> {
            if (value.equalsIgnoreCase("ASCENDING") || value.equalsIgnoreCase("ASC")) {
                return Sort.Direction.ASC;
            }
            if (value.equalsIgnoreCase("DESCENDING") || value.equalsIgnoreCase("DESC")) {
                return Sort.Direction.DESC;
            }
            throw new InvalidSortDirectionException(value);
        });
        registry.addConverter(String.class, ContentSortByType.class, ContentSortByType::from);
        registry.addConverter(String.class, ContentType.class, ContentType::from);
        registry.addConverter(String.class, SortByType.class, SortByType::from);
    }
}

2. 자료 첨부