如标题:为什么聚合函数对 RESTful 来说是个坏主意?虽然我知道 CRUD 对 RESTful 有好处。
例如,资源是“员工”,客户端需要检索所有员工的“工资”总和。RESTful 服务不应该提供这样的求和功能吗?
进一步的问题:如果聚合功能对 RESTful 不利,客户如何获得总工资的总和?检索所有'员工'记录并总结自己?
如标题:为什么聚合函数对 RESTful 来说是个坏主意?虽然我知道 CRUD 对 RESTful 有好处。
例如,资源是“员工”,客户端需要检索所有员工的“工资”总和。RESTful 服务不应该提供这样的求和功能吗?
进一步的问题:如果聚合功能对 RESTful 不利,客户如何获得总工资的总和?检索所有'员工'记录并总结自己?
我不会说必须将操作结果(即聚合函数)作为 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