我正在开发我的REST API的搜索功能,目前URI的结构如下:
api/items?type=egg,potato
让我们说每个项目资源有4个属性:
ID,姓名,类型,评级
设计我的URI并返回每个资源的属性子集的最宁静的方法是什么,例如仅这些资源的名称?
-
我问这个的原因是我经常想要一个不那么重的结果集。例如,我可以使用动态填充的名称构建一个AJAX搜索作为下拉列表 - 但我不希望每次请求都返回额外的膨胀。
答案 0 :(得分:2)
REST并不是一套坚如磐石的标准,但有一些不错的做法。
在这种特殊情况下,我建议您现在使用现有资源字段的查询参数,以选择type
值为egg
或potato
的项目。但是,要仅选择子集,可以引入field
查询参数。因此,您可以调用api/items?type=egg&fields=name
之类的API,仅获取name
类型的所有资源的egg
字段。
P.S
这不是我的发明,我已经在其他API中看到了这个,名为select
。据我所知,Facebook在其API中有这个功能。