RESTful API范例中描述资源统计信息的正确方法是什么?

时间:2019-01-14 15:33:34

标签: rest

让我们假设我们有某种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方式。

1 个答案:

答案 0 :(得分:1)

我不认为统计或报告本身具有RESTful约定。您的两个选择对我来说似乎都是合理的(不过更倾向于选择2 )。

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

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