Đây là một cải cách chung hơn cho câu hỏi này (với việc loại bỏ các phần cụ thể của Rails)
Tôi không chắc chắn cách triển khai phân trang trên tài nguyên trong ứng dụng web RESTful. Giả sử rằng tôi có một tài nguyên được gọi products
, bạn nghĩ cách nào sau đây là cách tiếp cận tốt nhất và tại sao:
1. Chỉ sử dụng chuỗi truy vấn
ví dụ. http://application/products?page=2&sort_by=date&sort_how=asc
Vấn đề ở đây là tôi không thể sử dụng bộ nhớ đệm toàn trang và URL cũng không rõ ràng và dễ nhớ.
2. Sử dụng các trang làm tài nguyên và chuỗi truy vấn để sắp xếp
ví dụ. http://application/products/page/2?sort_by=date&sort_how=asc
Trong trường hợp này, vấn đề được nhìn thấy là đó http://application/products/pages/1
không phải là một tài nguyên duy nhất vì việc sử dụng sort_by=price
có thể mang lại một kết quả hoàn toàn khác và tôi vẫn không thể sử dụng bộ đệm ẩn trang.
3. Sử dụng các trang làm tài nguyên và phân đoạn URL để sắp xếp
ví dụ. http://application/products/by-date/page/2
Cá nhân tôi thấy không có vấn đề gì khi sử dụng phương pháp này, nhưng ai đó đã cảnh báo tôi rằng đây không phải là cách hay (anh ấy không đưa ra lý do, vì vậy nếu bạn biết tại sao nó không được khuyến nghị, vui lòng cho tôi biết)
Bất kỳ đề xuất, ý kiến, phê bình đều được chào đón. Cảm ơn.