스프링 게시판 API 만들기 4

🌎·2023년 5월 21일
0

스프링 공부

목록 보기
7/11

이번엔 Pageable을 수정을 좀 해보았다.
원래는 SpringDoc을 통해서 API 명시서 페이지를 만들려했는데, 만들고 보니 파라미터에 order가 있는게 아닌가! (저번에 Pageable에서 order를 찾다가 포기했었다.)
그래서 다시 TRY 해보았는데, 역시나 있었다.

먼저, Repository interface 를 수정해주었다.

    List<Board> findByTitleContainingOrderByCreatedAtDesc(String title, Pageable pageable);

    List<Board> findByTitleContainingOrderByCreatedAtAsc(String title, Pageable pageable);

원래는 이렇게 있던 것을 아래와 같이 수정하였다.

 	List<Board> findByTitleContaining(String title, Pageable pageable);

Service 도 마찬가지로 수정해주었다.
원래는 직접 order 파라미터를 받아서 DESC일 경우와 ASC일 경우를 분기처리해서 각각 다른 Repository 메소드를 타게 했는데 이제 하나로 통일하였다.

    public List<Board> findAll(String title, String order, Pageable pageable) {
        if(order.equalsIgnoreCase("DESC")) {
            return repository.findByTitleContainingOrderByCreatedAtDesc(title, pageable);
        } else {
            return repository.findByTitleContainingOrderByCreatedAtAsc(title, pageable);
        }
    }

이렇게 되어 있던 것을 아래와 같이 수정하였다.

    public List<Board> findAll(String title, Pageable pageable) {
        return repository.findByTitleContaining(title, pageable);
    }

그리고 이제는 더이상 필요없는 order 파라미터를 컨트롤러와 서비스 쪽에서 삭제해고, 파라미터를 보내서 테스트를 해보니 매우 잘 작동하였다!

Request

Response

sort 파라미터 안에다가 배열로 우선 순위대로 나열할 파라미터를 나열하면, 그 순서대로 정렬해준다. 그리고 파라미터 옆에 ",DESC", ",ASC"를 붙이면 내림차순 오름차순이 설정이 된다. 너무 유용하니 꼭 기억해 두어야 겠다.

끝-*

profile
영차영차

0개의 댓글