为了账号安全,请及时绑定邮箱和手机立即绑定

RESTful many-to-many relationships创建和更新问题

RESTful many-to-many relationships创建和更新问题

幕布斯7119047 2019-04-13 08:36:07
比如1个team可以有多个player,并且1个player可以属于多个team,这就形成了many-to-many关系。针对这种情况,RESTful接口该如何设计呢?先说创建POST:/teams/1/players/PUT:/teams/1/players/1/这两种哪个更合适些呢,我是比较倾向第2种。再说更新,因为是N:N的关系,关系表里可能有如下数据idteam_idplayer_id111212321如果我想把player_id为1并且team_id为2的改为team_id为3....接口如果设计为PUT:/teams/3/players/1/也会把player_id为1并且team_id为1的修改为team_id为3....显然不是我想要的...该如何设计呢?
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

n:n情况下一个接口已经不适用了,我的想法是这样的:
/teams/{id}/players/{id}
或者/players/{id}/teams,二者选一(以下讨论假定选择前者)
还需实现/memberships/,这个接口维护两者关系的UUID。这是最重要的。这样你可以把/players/{id}/teams/用来维护当前的memberships的hyperlinks。
这时无论teams还是players的AUD操作都在/teams/{id}/players/{id}完成,同时同步/memberships下的关系即可。
如果你需要跟踪历史关系,还可以有/players/{id}/past_memberships/,这个接口也是一个membership的hyperlinks。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 320 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信