Skip to content

7.2.2 Phân trang và sắp xếp

Bạn có thể đã nhận thấy rằng các liên kết trong tài nguyên home đều cung cấp các tham số tùy chọn page, sizesort. Theo mặc định, các yêu cầu đến tài nguyên tập hợp như /data-api/tacos sẽ trả về tối đa 20 mục trên mỗi trang từ trang đầu tiên. Nhưng bạn có thể điều chỉnh kích thước trang và trang được hiển thị bằng cách chỉ định các tham số pagesize trong yêu cầu của mình.

Ví dụ, để yêu cầu trang đầu tiên của các taco với kích thước trang là 5, bạn có thể gửi yêu cầu GET sau (sử dụng curl):

bash
curl "localhost:8080/data-api/tacos?size=5"

Giả sử có nhiều hơn năm taco để hiển thị, bạn có thể yêu cầu trang thứ hai của các taco bằng cách thêm tham số page như sau:

bash
curl "localhost:8080/data-api/tacos?size=5&page=1"

Lưu ý rằng tham số page bắt đầu từ số 0, có nghĩa là yêu cầu page=1 thực tế là yêu cầu trang thứ hai. (Bạn cũng sẽ thấy rằng nhiều shell dòng lệnh có thể gây lỗi với dấu & trong yêu cầu, đó là lý do tại sao tôi đặt toàn bộ URL trong dấu ngoặc kép trong lệnh curl trước đó.)

Tham số sort cho phép bạn sắp xếp danh sách kết quả theo bất kỳ thuộc tính nào của thực thể. Ví dụ, bạn cần một cách để lấy ra 12 taco được tạo gần đây nhất để hiển thị trên giao diện người dùng. Bạn có thể làm điều đó bằng cách chỉ định các tham số phân trang và sắp xếp như sau:

bash
curl "localhost:8080/data-api/tacos?sort=createdAt,desc&page=0&size=12"

Ở đây, tham số sort chỉ định rằng bạn nên sắp xếp theo thuộc tính createdDate và nó nên được sắp xếp theo thứ tự giảm dần (để các taco mới nhất được hiển thị trước). Các tham số pagesize chỉ định rằng bạn nên xem trang đầu tiên với 12 taco.

Đây chính xác là những gì giao diện người dùng cần để hiển thị các taco được tạo gần đây nhất. Nó tương đương với endpoint /api/tacos?recent mà bạn đã định nghĩa trong TacoController trước đó trong chương này.

Bây giờ hãy chuyển hướng và xem cách viết mã phía client để tiêu thụ các endpoint API mà chúng ta đã tạo.

Released under the MIT License.