REST-仅获取集合中资源的特定属性
我正在开发REST API的搜索功能,目前URI的结构如下:REST-仅获取集合中资源的特定属性,rest,http,restful-url,Rest,Http,Restful Url,我正在开发REST API的搜索功能,目前URI的结构如下: api/items?type=egg,potato 假设每个项目资源有4个属性: Id、名称、类型、等级 设计我的URI并返回每个资源的属性子集(例如,仅返回这些资源的名称)的最restful的方式是什么 -- 我问这个问题的原因是我经常想要一个不那么繁重的结果集。例如,我可以使用动态填充的名称作为下拉列表构建一个AJAX搜索,但我不希望每个请求都有额外的膨胀。REST并不是一套坚如磐石的标准,但有一些很好的实践 在这种特殊情况下,
api/items?type=egg,potato
假设每个项目资源有4个属性:
Id、名称、类型、等级
设计我的URI并返回每个资源的属性子集(例如,仅返回这些资源的名称)的最restful的方式是什么
--
我问这个问题的原因是我经常想要一个不那么繁重的结果集。例如,我可以使用动态填充的名称作为下拉列表构建一个AJAX搜索,但我不希望每个请求都有额外的膨胀。REST并不是一套坚如磐石的标准,但有一些很好的实践 在这种特殊情况下,我建议像现在一样使用现有资源字段的查询参数,以选择具有
type
值egg
或potato
的项目。但要仅选择子集,可以引入字段
查询参数。因此,您可以像API/items?type=egg&fields=name
那样调用您的API,以仅获取具有egg
类型的所有资源的name
字段
附言
这不是我的发明,我已经在其他API中看到过,在一个叫做
select
的地方。据我所知,Facebook在其API中有此功能。谢谢,看起来是一个很好的方法。我想知道,不包括身份证有意义吗?(即,我是否应该始终将其作为一个字段?)我想这确实取决于您的用例和ID的含义。如果希望客户很快再次引用该资源,我将始终包含ID。如果没有,那你就不需要了。