对JOIN表的POST请求

时间:2015-09-16 20:28:16

标签: rest post many-to-many uri naming-conventions

让我们说3个表

session
-------------------------
id | name | date
-------------------------

speaker
-------------------------
id | name 
-------------------------

session_speaker
-------------------------
session_id | speaker_id 
-------------------------

我已经有了端点来进行插入

POST /session POST /speaker

我应该创建什么样的REST请求来指定使用POST /session或任何其他方法插入JOIN表的意图(传递session_idspeaker_id

注意:我已经有PATCH个请求来激活或停用会话。

问题: 基本上寻求一个理想的基于REST的解决方案来处理JOIN表的基于CRUD的操作,请指教。

1 个答案:

答案 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