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

Tit*_*tus 5 rest http restful-url

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

api/items?type=egg,potato
Run Code Online (Sandbox Code Playgroud)

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

ID,名称,类型,评级

设计我的URI并返回每个资源的属性子集(例如,只有这些资源的名称)最安静的方法是什么?

-

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

Ale*_*vic 4

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

在这种特殊情况下,我建议像现在一样使用现有资源字段的查询参数来选择值为type或 的egg项目potato。但要仅选择子集,您可以引入field查询参数。因此,您可以像这样调用API api/items?type=egg&fields=name,以仅获取name具有该类型的所有资源的字段egg

PS 这不是我的发明,我已经在其他 API 中看到了这一点,某个名为select. 据我所知,Facebook 在其 API 中有此功能。