这是对该问题的更通用的表述(消除了Rails特定部分)。
在RESTful web应用程序中,我不确定如何对资源实现分页。假设我有一个名为products
的资源,以下哪种方法是最佳选择?为什么:
1. 仅使用查询字符串
例如:http://application/products?page=2&sort_by=date&sort_how=asc
这里的问题是我无法使用全页缓存,而且URL不够简洁易记。
2. 使用页面作为资源,使用查询字符串进行排序
例如:http://application/products/page/2?sort_by=date&sort_how=asc
在这种情况下,我看到的问题是http://application/products/pages/1
不是唯一的资源,因为使用sort_by=price
可能会得到完全不同的结果,并且我仍然无法使用页面缓存。
3. 使用页面作为资源和URL段进行排序
例如:http://application/products/by-date/page/2
我个人认为使用这种方法没有问题,但有人警告我这不是一个好的方式(他没有给出原因,如果您知道为什么不推荐,请告诉我)
欢迎提出任何建议、意见和批评。谢谢。