卢声远*_* Lu 5 rest aggregate-functions
标题:为什么聚合功能对RESTful不好?虽然我知道CRUD对RESTful有好处.
例如,资源是" 员工 ",客户需要检索所有员工的总" 工资 " 总和.RESTful服务不应该提供这样的求和功能吗?
进一步的问题:如果聚合功能对RESTful不利,客户如何获得总薪水总和?要检索所有" 员工 "记录并总结一下?
我不会说暴露操作结果(即聚合函数)作为REST中的资源必须被认为是坏的.
来自RESTful Webservices Cookbook(O'Reilly):
REST的架构约束最常见的一种看法是它们仅适用于应用程序域中"事物"或"实体"的资源.尽管在许多情况下这可能是正确的,但涉及处理功能的场景挑战了这种感知.
将处理函数视为资源是很常见的,并使用HTTP GET来获取包含处理函数输出的表示.您还可以使用查询参数为处理函数提供输入.
那么为什么不提供一些员工的工资汇总结果作为资源,例如:
GET /employees/aggregation?data=salary
Run Code Online (Sandbox Code Playgroud)
或更一般:
GET /aggregator?resource=employee&data=salary
Run Code Online (Sandbox Code Playgroud)
您甚至可以过滤应该汇总工资的员工组,例如:
GET /employees/aggregation?data=salary&divison=sales
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |