首页 > 解决方案 > RESTful API 范式中描述资源统计的正确方法是什么?

问题描述

让我们假设我们有某种users集合。每个user(单一资源)都有某种统计数据——评论数、调用数、任何东西的数量。每个users集合也可能有某种统计数据——全局统计数据。

这些统计数据可以是评论数量,也可以是更复杂的数据。

目前我正在考虑将统计信息“集成”到我的 RESTful API 的两种主要方式:

  1. 为每个单个资源user添加特殊计算字段 -balancemediumAgeOfMaleFriends。在对资源执行GET请求时,user我将循环查询参数中的每个字段fields并计算相应的值。例子:.../user/123?fields=balance,name,email,mediumAgeOfFemaleFriends
  2. 在每个资源下创建名为reports(或类似的)子资源,创建报告资源模板(具有预定义的配置)并执行相同的GET请求,如下所示:.../users/123/reports/1?from=...&to=...

但是这两种方式看起来不像是真正的 RESTful 方式。

标签: rest

解决方案


我认为统计数据或报告本身没有 RESTful 约定。您的两个选项对我来说似乎都是合理的(尽管更倾向于选项 2)。

另一种选择是为“报告”提供根资源,例如/reports/user/123. 如果您决定将报告扩展到“用户”以外的其他资源,这可能会在未来派上用场。

您还可以查看HubSpots Analytics - Reports API以获得灵感。


推荐阅读