Rest 对联接表的POST请求

Rest 对联接表的POST请求,rest,post,many-to-many,uri,naming-conventions,Rest,Post,Many To Many,Uri,Naming Conventions,比如说3张桌子 session ------------------------- id | name | date ------------------------- speaker ------------------------- id | name ------------------------- session_speaker ------------------------- session_id | speaker_id -------------------------

比如说3张桌子

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

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

session_speaker
-------------------------
session_id | speaker_id 
-------------------------
我已经准备好了端点来进行插入

POST/session
POST/speaker

我应该创建什么样的REST请求来指定使用
POST/session
或任何其他方法(传递
session\u id
speaker\u id
)插入联接表的意图

注意:我有一个
补丁
请求,可以激活或停用会话

问题:
基本上是为了寻找一个理想的基于REST的解决方案来处理联接表中基于CRUD的操作,请给出建议。

您可以使用以下REST操作来创建关系:

PUT speakers/speaker/{speakerId}/session/{sessionId}/
我不建议在URL中使用复数名称(例如扬声器),我建议使用单数名称,如SessionSpeaker,但由于您无法将其从“扬声器”更改为“扬声器”,因此我已按要求使用了它

您还应该使用PUT而不是POST来插入数据,因为PUT是一种保护措施,防止您在会话中插入同一个扬声器

然后检索扬声器信息,您可以使用:

GET speakers/session/{sessionId}
GET speakers/speaker/{speakerId}

关于REST和实体多重性的另一个好答案是。

您可以使用以下REST操作来创建关系:

PUT speakers/speaker/{speakerId}/session/{sessionId}/
我不建议在URL中使用复数名称(例如扬声器),我建议使用单数名称,如SessionSpeaker,但由于您无法将其从“扬声器”更改为“扬声器”,因此我已按要求使用了它

您还应该使用PUT而不是POST来插入数据,因为PUT是一种保护措施,防止您在会话中插入同一个扬声器

然后检索扬声器信息,您可以使用:

GET speakers/session/{sessionId}
GET speakers/speaker/{speakerId}

关于REST和实体多重性的另一个好答案是。

@BenSmith请发表评论。我不想改变路线,
/speakers
,我仍然愿意接受插入的想法。对于
GET
,我从这里获取了解决方案,请您使用此linkHi@user2727195增强您的答案,很抱歉延迟回复您。我已经更新了关于您使用演讲者路线的答案。我更新的答案有帮助吗?@BenSmith请发表评论。我不想更改路线,
/speakers
,我仍然愿意接受插入的想法。对于
GET
,我从这里获取了解决方案,请您使用此linkHi@user2727195增强您的答案,很抱歉延迟回复您。我已经更新了关于您使用扬声器路线的答案。我更新的答案有帮助吗?