让我们说3个表
session
-------------------------
id | name | date
-------------------------
speaker
-------------------------
id | name
-------------------------
session_speaker
-------------------------
session_id | speaker_id
-------------------------
我已经有了端点来进行插入
POST /session
POST /speaker
我应该创建什么样的REST请求来指定使用POST /session
或任何其他方法插入JOIN表的意图(传递session_id
和speaker_id
)
注意:我已经有PATCH
个请求来激活或停用会话。
问题: 基本上寻求一个理想的基于REST的解决方案来处理JOIN表的基于CRUD的操作,请指教。
答案 0 :(得分:0)
您可以使用以下REST操作来创建关系:
PUT speakers/speaker/{speakerId}/session/{sessionId}/
我建议不要在网址(例如发言人)中使用复数名称,我建议使用单一名称,例如SessionSpeaker,但是你不能从"发言人&#34改变它34;我按照要求使用了它。
您还应该使用PUT而不是POST来插入数据,因为PUT是idempotent,即PUT防止您在会话中插入相同的发言者。
然后检索您可以使用的发言人信息:
GET speakers/session/{sessionId}
GET speakers/speaker/{speakerId}
关于REST和实体多重性的另一个好答案是here。