请求资源时请求集合时的简单模型和请求资源时的扩展模型 - 如何

simple model when requesting collection and extended model when requesting resource - how

我有以下 URI:/articles/:id,其中 article 是网络服务上的资源并关联了 model/class。现在,在请求收集时,我只需要 return 每个资源的部分数据(以节省带宽并提高速度),但是当从收集中请求单个项目时,我需要发送完整数据。我的问题是我应该对服务器上的同一资源使用两个 models/classes 并根据集合或请求单个资源启动不同的资源吗?或者也许应该只有一个 model/class 但在请求集合时并非所有字段都应该填充数据?或者也许还有另一种方法?

我建议使用 here 建议的方法和 fields 查询参数。

如果 API 将向所有人开放使用并且客户端使用将不可预测,那么默认情况下您可能需要限制您 return 的字段。只要确保您以某种方式记录所有可能使用的字段,以防客户实际需要它们。

如果 API 将仅由您制作的一个或多个应用程序使用,那么默认情况下您可以 return 所有字段,然后您的应用程序可以传递 fields 参数来加快速度。