【发布时间】:2010-12-15 05:02:10
【问题描述】:
当列表可以由不同的资源“拥有”时,表示列表资源的最佳方式是什么?
以典型的博客为例。
假设您有帖子、评论和用户。一个帖子有很多评论,一个用户是很多评论的作者。
您可能希望获取给定用户上下文中的评论列表(例如,该用户的评论历史记录)、给定帖子(例如该帖子上的所有 cmets)或可能只是所有评论、句点 (虽然这不太可能)。
您可以拥有三个不同的 URI:
/user/user_id/comments
/post/post_id/comments
/comments
这样好吗?我的理解是 URI 应该是幂等的。拥有一个 url 是否更“RESTful”: /cmets
并传递过滤参数?例如
/comments?user=user_id
/comments?post=post_id
我猜这第二种方法意味着您也可以按用户过滤和发布与
/comments?user=user_id&post=post_id
但我喜欢第一个示例如何公开分层上下文。
这里的最佳做法是什么?
【问题讨论】:
标签: url rest friendly-url