【发布时间】:2019-08-30 02:05:31
【问题描述】:
我正在设计一个 API,我想注意 RESTful 方法。 因为在我的研究中,大多数类似的文章都提到了球员和球队,我会坚持下去。 在这种情况下,一名球员一次可以拥有多个球队,但必须至少拥有一个球队。 如果玩家隶属于多个团队,则无法删除该玩家。
为此,如果您想创建一个播放器,您需要:
POST /teams/{id}/players
直接
POST /players
不会考虑到玩家有团队所以不允许。
如果你想删除一个播放器,你可以这样做:
DELETE /players/{id}
只有当玩家只隶属于一支球队时才应该这样做,但如果球员在多支球队中,则应该被拒绝(在这种情况下,您需要解除除一支球队之外的所有球队的链接)。
现在我有不同的方法来处理在团队和玩家之间创建和删除新链接:
POST /teams/{id}/players/{id}PUT /teams/{id}/players/{id}-
POST /players-teams(正文中包含 player_id 和 teams_id)
一个。 DELETE /teams/{id}/players/{id}
b. DELETE /players-teams/{id}
对不同解决方案的一些想法:
ad 1. GET 不会引用相同的信息
ad 2. 我没有提供关系的 id...
ad 3. 我应该提供GET /teams/{id}/players-teams 和GET /players/{id}/players-teams - 还是GET /players/{id}/teams-players
广告那不会删除播放器吗?
广告 b.谁会知道关系的ID?
【问题讨论】:
标签: rest api many-to-many