如何在REST API中设计/查询多对多关系?

时间:2018-08-26 15:42:15

标签: rest single-page-application api-design system-design

我正在尝试设计一种由react SPA使用的REST API,该SPA查询有关两个实体之间的关系的数据:TeamPlayer,其中Player只能属于一个Team

我想查询所有Team,然后获取每个团队的所有Player

我可以看到3种主要方法

  1. 扩展/teams端点以具有一些参数?expand=player或类似的东西,其中包括每个团队的玩家数组。数据返回很好,可以被react应用程序使用,但是现在REST API端点变得越来越复杂,越来越不符合单一职责原则。

  2. 查询/teams以获取所有团队的ID,然后查询每个团队/team/:id/players 。但这将增加对后端的请求数量,尽管它将更好地分离职责并使事情更加明确。

  3. 查询/teams以获取所有团队的ID,然后查询/players/:ids,其中:ids是所有团队的ID 。这也是很明确的,但可能会导致URL很大,而且不够整洁。

最好的方法是什么?

0 个答案:

没有答案