我正在设计一个灵活的 Web 服务来聚合数据。
如果我们以销售为例。销售资源具有以下属性:
- 销售人员
- 产品
- 价格
- 顾客
- ID
- 部门
- 日期
- 等等
因此,访问销售的基本 URI 将类似于以下内容:
api/sales/{id}
我需要设计 URI 以满足以下要求:
- 一个部门的总销售额
- 一个人的产品总销售额
- 月
所以,三个基本要求。结果的分组、过滤和选择(类似于 GROUP BY、WHERE 和 SELECT)。
如何设计URI?对我来说真正的问题是如何设计分组。以下是我一直在考虑的一些想法:
保留当前的 URI 设计,但添加其他参数:
例如
/api/sales?groupby=department&groupby=customer
新的 URI:
/api/sales-aggregator?groupby=department&groupby=customer
包括分组作为路径的一部分:
/api/sales-aggregator/department/customer
但是部门和客户的顺序是任意的。
替代路径解决方案
/api/sales-aggregator;groupby=部门,groupby=客户
建议?