This lesson discusses how to implement a "Read Many" endpoint in a Spring Boot API to fetch multiple Cash Cards. The key focus is on handling the retrieval of multiple records efficiently using pagination and sorting.
findAll
Method: While CrudRepository
's findAll
method can fetch all records, it raises concerns about returning only the user's own Cash Cards, handling large datasets, and sorting the results.PagingAndSortingRepository
: This specialized repository interface provides methods for pagination and sorting.page
, size
, and sort
are used to control pagination and sorting, e.g., /cashcards?page=1&size=3&sort=amount,desc
.Pageable
object, allowing Spring to parse pagination and sorting parameters from the query string.Page
object.GET 요청으로 리스트 반환하기
이번 강의에서는 단일 Cash Card를 반환하는 기존의 Read 엔드포인트와는 다르게, 여러 개의 Cash Card를 반환하는 "다수 읽기(Read Many)" 엔드포인트를 구현하는 방법을 배웁니다. 이 과정에서 이 작업이 어떻게 기존의 Read 엔드포인트와 상당히 다른지 이해하고, 대량의 데이터를 효율적으로 처리하기 위해 페이징과 정렬에 대해 논의합니다.
Cash Card 리스트 요청하기
Family Cash Card 사용자들은 여러 개의 카드를 가질 수 있습니다. 따라서 API는 단일 REST 요청에 여러 개의 Cash Card를 반환할 수 있어야 합니다. 이를 위해 단일 Cash Card 대신 Cash Card 객체의 JSON 배열을 반환하도록 데이터 계약을 설정해야 합니다.
[
{
"id": 1,
"amount": 123.45
},
{
"id": 2,
"amount": 50.0
}
]
CrudRepository
의 findAll
메소드를 사용하여 데이터베이스의 모든 Cash Card를 가져올 수 있지만, 다음과 같은 문제들이 있습니다:
페이징과 정렬
페이징과 정렬을 위해 PagingAndSortingRepository
를 사용합니다.