rest - RESTful API 范式中描述资源统计的正确方法是什么?
问题描述
让我们假设我们有某种users
集合。每个user
(单一资源)都有某种统计数据——评论数、调用数、任何东西的数量。每个users
集合也可能有某种统计数据——全局统计数据。
这些统计数据可以是评论数量,也可以是更复杂的数据。
目前我正在考虑将统计信息“集成”到我的 RESTful API 的两种主要方式:
- 为每个单个资源
user
添加特殊计算字段 -balance
等mediumAgeOfMaleFriends
。在对资源执行GET
请求时,user
我将循环查询参数中的每个字段fields
并计算相应的值。例子:.../user/123?fields=balance,name,email,mediumAgeOfFemaleFriends
- 在每个资源下创建名为
reports
(或类似的)子资源,创建报告资源模板(具有预定义的配置)并执行相同的GET
请求,如下所示:.../users/123/reports/1?from=...&to=...
但是这两种方式看起来不像是真正的 RESTful 方式。
解决方案
我认为统计数据或报告本身没有 RESTful 约定。您的两个选项对我来说似乎都是合理的(尽管更倾向于选项 2)。
另一种选择是为“报告”提供根资源,例如/reports/user/123
. 如果您决定将报告扩展到“用户”以外的其他资源,这可能会在未来派上用场。
您还可以查看HubSpots Analytics - Reports API以获得灵感。
推荐阅读
- sql - Update statement where condtion is neglected
- authentication - 颤振http异常
- html - 如何计算` `元素的高度
- mongodb - 如何在 MongoDB 中将待办事项或更多内容保存在创建它们的用户的数组属性中?
- oracle - Oracle如何更新一张表中的多列
- python - TypeError:“NoneType”对象不可调用(Pytorch)
- linux-kernel - 应用补丁文件时未定义的引用
- python - Django 如何组合不同的上下文并将其传递给模板
- python - 如何从特定用户 django python 获取数据
- r - 有人可以解释这些代码行的含义吗?