POST 请求加入 table

POST request for JOIN table

假设 3 tables

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

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

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

我已经准备好端点来进行插入

POST /session POST /speaker

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

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

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

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

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

我不建议在 URL 中使用复数名称(例如 speakers),我建议使用单数名称,例如 SessionSpeaker,但由于您无法更改 "speakers" 我已经使用了它根据要求。

您还应该使用 PUT 而不是 POST 来插入数据,因为 PUT 是 idempotent 即 PUT 防止您在会话中插入同一个扬声器。

然后要检索演讲者信息,您可以使用:

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

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