我正在尝试设计一种由react
SPA使用的REST API,该SPA查询有关两个实体之间的关系的数据:Team
和Player
,其中Player
只能属于一个Team
。
我想查询所有Team
,然后获取每个团队的所有Player
。
我可以看到3种主要方法:
扩展/teams
端点以具有一些参数?expand=player
或类似的东西,其中包括每个团队的玩家数组。数据返回很好,可以被react应用程序使用,但是现在REST API端点变得越来越复杂,越来越不符合单一职责原则。
查询/teams
以获取所有团队的ID,然后查询每个团队/team/:id/players
。但这将增加对后端的请求数量,尽管它将更好地分离职责并使事情更加明确。
查询/teams
以获取所有团队的ID,然后查询/players/:ids
,其中:ids
是所有团队的ID 。这也是很明确的,但可能会导致URL很大,而且不够整洁。
最好的方法是什么?