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_id
和 speaker_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。
假设 3 tables
session
-------------------------
id | name | date
-------------------------
speaker
-------------------------
id | name
-------------------------
session_speaker
-------------------------
session_id | speaker_id
-------------------------
我已经准备好端点来进行插入
POST /session
POST /speaker
我应该创建什么样的 REST 请求来指定使用 POST /session
或任何其他方法(传递 session_id
和 speaker_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。