为了账号安全,请及时绑定邮箱和手机立即绑定

REST Web应用程序中的分页

REST Web应用程序中的分页

白板的微信 2019-10-14 09:32:23
这是对该问题的更一般化的表述(省去了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 我个人认为使用此方法没有问题,但是有人警告我这不是一个好方法(他没有给出原因,所以如果您知道为什么不建议这样做,请告诉我)任何建议,意见,批评都将受到欢迎。谢谢。
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

我认为版本3的问题更多是“观点”问题-您将页面视为资源还是页面上的产品。

如果您将页面视为资源,那是一个很好的解决方案,因为对页面2的查询将始终产生页面2。

但是,如果您将页面上的产品视为资源,则会遇到问题,即页面2上的产品可能会发生更改(删除了旧产品或其他原因),在这种情况下,URI并不总是返回相同的资源。

例如,客户存储了指向产品列表页面X的链接,下次打开链接时,所涉及的产品可能不再位于页面X上。


查看完整回答
反对 回复 2019-10-14
?
当年话下

TA贡献1890条经验 获得超9个赞

我同意Fionn的观点,但是我要进一步说,页面对我来说不是资源,而是请求的属性。这使我只选择了选项1查询字符串。感觉不错。我真的很喜欢Twitter API的结构结构。不太简单,也不太复杂,有据可查。不管是好是坏,当我以一种方式与另一种方式做事时,这是我的“可行”设计。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 477 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信