如何在RESTful API中处理多对多关系?
假设您有2个实体,Player和Team,其中玩家可以在多个团队中。在我的数据模型中,我为每个实体都有一个表,以及一个用于维护关系的联接表。Hibernate很擅长处理此问题,但是如何在RESTful API中公开这种关系? 我可以想到几种方法。首先,我可能让每个实体包含另一个实体的列表,因此Player对象将具有其所属的团队的列表,并且每个Team对象将具有一个属于其的Player的列表。因此,要将玩家添加到团队中,您只需将玩家的表示发布到端点,例如POST /player或/team带有适当对象作为请求负载的POST 。对我来说,这似乎是最“ RESTful”的,但感觉有点奇怪。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png', players: [ '/api/player/20', '/api/player/5', '/api/player/34' ] } /api/player/20: { pk: 20, name: 'Ray Allen', birth: '1975-07-20T02:00:00Z', team: '/api/team/0' } 我可以想到的另一种方式是将关系本身作为一种资源公开。因此,要查看给定团队中所有球员的列表,您可以执行GET /playerteam/team/{id}或类似的操作,然后获取PlayerTeam实体的列表。要将玩家添加到团队中,请/playerteam使用适当构建的PlayerTeam实体作为有效载荷进行POST 。 /api/team/0: { name: 'Boston Celtics', logo: '/img/Celtics.png' } /api/player/20: { pk: 20, name: 'Ray Allen', …