실제 서비스의 경우에는 레코드의 개수가 많을 것이고 이 경우 하나의 API 요청으로 모든 레코드를 받는 것은 오랜 시간이 걸리게 됩니다. 따라서 이런 경우 페이지를 나눠서 요청을 해야합니다. 다행히도 DRF 에서는 이러한 pagination 기능을 제공하고 있습니다.
PageNumberPagination 과 LimitOffsetPagination
pagination 을 하는데는 크게 두 가지 방법이 있습니다.
두 방법 모두 url 의 get parameter 를 이용하여 이를 지원해줍니다.
각각에 대해 알아보도록 하겠습니다.
- PageNumberPagination
- page : 몇 번째 페이지인지 표시해줍니다. 페이지는 1부터 시작합니다.
- page_size : 한 페이지에 몇 개의 레코드를 보여줄지 표시해줍니다.
- LimitOffsetPagination
- offset : 몇 번째 레코드부터 보여줄 지 설정해줍니다. 설정하지 않을 시 첫 번째 레코드 부터 보여줍니다.
- limit : 몇 개의 레코드를 보여줄 지 설정합니다.
- offset 번째 레코드부터 offset+limit-1 번째 레코드까지 보여줍니다.
Reference
https://security-nanglam.tistory.com/454
https://ssungkang.tistory.com/entry/Django-DRF-Pagination
'Server > Django REST framework' 카테고리의 다른 글
[Django] Reverse relations과 Related_name (0) | 2022.07.28 |
---|---|
[Django] django-rest-knox 란? (0) | 2022.07.27 |