5

如标题:为什么聚合函数对 RESTful 来说是个坏主意?虽然我知道 CRUD 对 RESTful 有好处。

例如,资源是“员工”,客户端需要检索所有员工的“工资”总和。RESTful 服务不应该提供这样的求和功能吗?

进一步的问题:如果聚合功能对 RESTful 不利,客户如何获得总工资的总和?检索所有'员工'记录并总结自己?

4

1 回答 1

9

我不会说必须将操作结果(即聚合函数)作为 REST 中的资源公开是不好的。

来自RESTful Webservices Cookbook (O'Reilly):

对 REST 架构约束的最常见看法之一是,它们仅适用于应用程序域中的“事物”或“实体”资源。尽管在许多情况下这可能是正确的,但涉及处理功能的场景挑战了这种看法。

将处理函数视为资源并使用 HTTP GET 获取包含处理函数输出的表示是很常见的。您还可以使用查询参数为处理函数提供输入。

那么为什么不提供一些员工的工资聚合结果作为资源,即像这样:

GET /employees/aggregation?data=salary

或更笼统地说:

GET /aggregator?resource=employee&data=salary

您甚至可以过滤应汇总工资的员工组,例如:

GET /employees/aggregation?data=salary&divison=sales
于 2013-07-17T14:20:41.410 回答