REST API:我们是不是应该为结果和结果计数设置单独的 API?

Posted

技术标签:

【中文标题】REST API:我们是不是应该为结果和结果计数设置单独的 API?【英文标题】:REST API: Should we have separate API for result and result count?REST API:我们是否应该为结果和结果计数设置单独的 API? 【发布时间】:2017-12-20 12:49:29 【问题描述】:

我很困惑我们是否应该创建单独的 API 来获取结果和结果计数,或者我们应该只根据结果 API 中的查询字符串来获取计数。

/api/results/ : Fetches all records
/api/results/?city=1: Fetches all records with city=1
/api/results/?iscount=1: Fetches the count of records i.e. list of cityId and count of record for respective cityId
/api/results/?city=1&iscount=1: Fetch the count of record for cityId=1

/api/resultcount/: Fetches the count of records i.e. list of cityId and count of record for respective cityId
/api/resultcount/?city=1: Fetch the count of record for cityId=1

对我来说,查询字符串用于过滤资源,所以我赞成创建单独的 API 来获取计数。意见?

【问题讨论】:

【参考方案1】:

我们不需要创建另一个点来获取计数。相反,我们可以在响应标头中发送计数详细信息。

如下所示,

/api/results/(GET 方法) - 这将返回结果。

/api/results/(HEAD 方法) - 这将只返回响应标头中的结果计数。

请看下面的链接 What’s the best RESTful method to return total number of items in an object??

【讨论】:

HEAD /api/results 的问题是服务器端查询必须实际获取结果,而您只需要一个计数(不那么密集的查询)。

以上是关于REST API:我们是不是应该为结果和结果计数设置单独的 API?的主要内容,如果未能解决你的问题,请参考以下文章

REST API 资源是不是应该根据查询参数进行授权?

核心数据:从 Rest API 同步数据

Gmail REST API 线程搜索未给出预期结果

PayPal REST API 更新计费协议

REST API 响应状态代码 - 搜索返回单个结果的 GET

使用python将Rest Api json结果转换为csv