【发布时间】:2013-09-16 02:15:00
【问题描述】:
我对集合 URI 应该返回什么感到有点困惑。
假设我有一个集合,/users 相当大的元素。然后我们有预期的:
GET /users/123 // returns user element with identifier 123
但是应该怎么做
GET /users
返回?如果集合很大,并且元素很大,那么返回所有元素可能不是一件好事。也许相反,/users 级别的GET 请求应该返回元素摘要(标识符和可能的一些属性),而/users/ 级别的GET 请求应该返回实际元素。然后你可以做类似的事情;
GET /users
> [{name: abc, id: 1}, {name: def, id: 2}, {name: ghi, id: 3}, ...]
GET /users/2
> {name: def, prop1: *, prop2: *, ...}
如果您想在完整请求它们之前预览重要的应用程序域属性,这可能是一种延迟加载数据的好方法。有了这个,为了应用查询,你会做类似的事情
GET /users?prop1=value // returns element summaries of elements with prop1=value
GET /users/?prop1=value // returns elements with prop1 = value
这种方法可以吗?或者其他方法作用于/users 然后松散意义..(例如PUT /users?)
【问题讨论】:
-
我不喜欢结尾处的 /。不知道为什么。我宁愿在没有提供 ID 时使用摘要,但允许用查询部分覆盖它,也许还有一个“?detail = yes”,您可以使用它来获取详细信息。除非你想要大量的结果字节,否则不要在没有查询的情况下调用它。
-
@LeeMeador Ya / 东西看起来很奇怪。
?detail=yes想法是个好主意 - 谢谢