REST API设计聚合

时间:2015-03-17 22:35:35

标签: api rest aggregate

我们正在为员工管理应用创建API。因此,在界面中有计划,我们必须在表中显示每行每个用户的所有班次。更进一步,每个用户(每行)和每天(每列)都有摘要。我们应该创建一个大的聚合调用,如:

GET /api/locations/{id}/shedule

将返回所有员工,轮班,摘要等。或者我们应该将其粉碎到以下几个系列:

GET /api/locations/{id}/shifts
GET /api/locations/{id}/events
GET /api/locations/{id}/summary
GET /api/employee/{id}/summary?date_from={date_from}&date_from={date_to}

对我来说,第二个选项更灵活,没有理由创建新的抽象资源,这是一个很好的选择。在我看来,它显然是界面层的一部分,不应该影响API设计。

另一方面,大聚合更加优化,因为数据库调用会更少,并且很容易缓存。

您怎么看?是否有任何来源,文章,我可以依靠?

1 个答案:

答案 0 :(得分:1)

对于这两种方法都没有RESTful或unRestful。 URI的语义与REST无关。真正重要的是客户端如何获取URI。如果他们在文档中查找URI模式并填充值而不是使用链接,那么API就不是RESTful。

考虑到这一点,我要说的是与您的业务和应用程序生态系统更加一致的方法是最好的方法。如果您觉得有必要,不要害怕创建总资源。