REST - 仅获取集合中的特定 属性 资源

REST - Getting specific property of resources in collection only

我正在开发我的 REST API 的搜索功能,目前 URI 的结构为:

api/items?type=egg,potato

假设每个项目资源有 4 个属性:

ID、名称、类型、评级

设计我的 URI 和 return 每个资源的属性子集的最 restful 方法是什么,例如这些资源只有个名字?

--

我问这个的原因是我经常想要一个不那么繁重的结果集。例如,我可能会构建一个 AJAX 搜索,将动态填充的名称作为下拉列表 - 但我不希望每个请求都返回额外的膨胀信息。

REST 并不是真正的一套坚如磐石的标准,但有一些很好的实践。

在这种特殊情况下,我建议像现在一样使用现有资源字段的查询参数,select 项的 type 值为 eggpotato。但是为了select只是一个子集,可以引入一个field查询参数。所以你可以像 api/items?type=egg&fields=name 一样调用你的 API,只得到所有类型为 egg 的资源的 name 字段。

P.S 这不是我的发明,我已经在其他 API 中看到过,某个地方叫做 select。据我所知,Facebook 在其 API 中有此功能。