我在GET /task/ID
显示资源时以及集合GET /task
中的行时发现了有关REST子集的问题。
REST - Resource and Collection Representations
我正在使用Apigility。
我知道REST不是官方的,但希望尽可能严格地保持整体最佳实践/标准。
我可以在集合和资源中拥有其他字段吗? cource部分将是相同的,但对于收集我需要一些额外的信息进行过滤,在资源中现在需要它们。
这会以某种方式破坏某些规则吗?
答案 0 :(得分:1)
在REST集合响应中返回资源的部分表示并不常见,而在请求单例端点时返回完整表示。
请参阅示例here(我在this search on Google找到的第一个链接之一,还有更多链接。)
获取馆藏
获取像“成员”这样的集合可能会返回
1)整个资源列表作为链接列表,
2)每个资源的部分表示,或
3)集合中所有资源的完整表示。
因此,集合中的资源表示与单例表示不同并不罕见,但我想说您宁愿拥有更少的数据。
您在考虑添加到集合中的响应时,有哪些特定字段?你能举个例子吗?
答案 1 :(得分:0)
这肯定是不寻常的,保持一致性更好,为什么同样的东西有2个型号?查看Richardson Maturity Model level 1,可以预期服务端点映射到(单个)资源。那么过滤的额外信息是什么意思?
如果这是一个常见的场景,您可能希望通过模板化的URI(查询字符串)在服务器上处理它,如下所示:
GET /task?type={type}&property2={value2}
否则,您可以只获取它们并在客户端上进行过滤(在这种情况下,您肯定需要这些属性)。