考虑以下http请求:
GET /defects?group-by=priority
我希望将返回的缺陷集合(feed)按其优先级进行分组.即退回的饲料包括缺陷(资源)和群体信息.
我想到了一些能够在返回集合之前返回组的标题和数量的东西,例如:
这种表示的问题在于查询的资源(URL)是缺陷的,因此客户端期望收集缺陷而不是Group元素.
我想解决这个问题的一个选择是为缺陷定义一个单独的组资源,即:
defects/groups?group1=priority
这将返回组的集合及其计数,然后客户端可以查询数据本身的缺陷资源.但是这种设计很麻烦并且需要额外的往返,更不用说在调用组资源和缺陷资源之间添加缺陷时可能出现的一致性问题.
最重要的是,返回按属性分组的元素集合的其他方法是什么?
编辑我首先想到这个问题应该由ATOM出版标准来解决.但即使ATOM已经解决了它,我仍然需要支持其他表示(XML,JSON),所以我正在寻找RESTful方法中更固有的模式.
我不认为你要求的是可能的.
如果客户期望收集缺陷,那么您可以优先订购,但是
a group of defects != a defect
所以你不能返回一组组.
你可以添加一个讨厌的黑客来为缺陷资源添加属性优先级和优先级组大小,但这对我来说似乎很糟糕.
我认为正确的Restful方法是:
设计服务以返回缺陷组
要么
返回按优先级排序的缺陷,让客户端对每个组中的资源进行分组和计数.