Spring Data JDBC가 제공하는 CrudRepository를 상속받아 repository를 구현.
findAllByOrderByMemberIdDesc(Pageable pagaeble);
=> memberId를 기준으로 내림차순으로(최신순) 모든 정보를 가져온다.
매개변수로 Pageable 타입의 객체를 넘겨주면, 객체의 정보를 읽고 page 조건을 설정하여 데이터를 가져온다.
page 개수와 size(page별 데이터 개수)를 매개변수로 받아 PageRequest
객체를 생성하여 repository로 반환한다.
PageRequest는 Pageable을 구현하며, Sort
객체를 매개변수로 받아 정렬조건을 설정할수도 있다.
page와 size를 query parameter로 받는다.
memberService에서 반환한 Page객체(memberPage)에서 제공하는
페이지 개수, 페이지 당 데이터 개수, 총 데이터 수
등의 정보를 이용해 페이지 정보를 담고있는PageInfo
객체를 생성했다. (page는 0부터 시작이기 때문에 page-1)
members 반환 + dto로 변환
이후 Page객체의
getContent
를 호출해 실제 데이터를 받아오고, Dto 객체로 변환한다.*
전체 member
와 page정보
를 함께 반환하는 별도의 Dto클래스(MemberAllDto) 생성 후, response와 pageInfo 객체를 Dto로 반환한다.
요청 URI 형식 : http://localhost:8080/v10/members?page=1,size=20