休息资源是否应该在集合中具有相同的结构

Should rest resource have same structure in collection

当按 GET /task/ID 显示资源并作为集合 GET /task 中的行时,我发现了有关 REST 子集的问题。 REST - Resource and Collection Representations

我正在使用 Apigility。

我知道 REST 不是官方的,但希望尽可能严格地保持整体最佳 practice/standard。

我可以在集合和资源中有其他字段吗?当然部分是一样的,但是为了收集我需要一些额外的信息来过滤,在资源中现在需要它们。

这是否会以任何方式违反某些规则?

那肯定不正常,最好保持一致,为什么同一个东西有2个模型?查看 Richardson Maturity Model level 1,人们会期望服务端点映射到(单个)资源。用于过滤的额外信息是什么意思?

如果这种情况很常见,您可能希望通过模板化 URI(查询字符串)在服务器上处理它,如下所示:

GET /task?type={type}&property2={value2}

否则,您可以将它们全部获取并在客户端进行过滤(在这种情况下您肯定需要这些属性)。

在 REST collection 响应中 return 资源的部分表示并不少见,而完整表示在请求单例端点时 returned。

阅读例如here (one of the first links I found with this search on Google,还有很多)。

Getting a collection

Getting a collection, like "members" may return
1) the entire list of resources as a list of links,
2) partial representations of each resource, or
3) full representations of all the resources in the collection.

因此 collection 中的资源表示与单例表示不同的情况并不少见,但我想说您宁愿拥有更少的数据也不愿拥有更多的数据。

您考虑将哪些特定字段添加到 collection 的响应中?能举个例子吗?