如何使用RESTful API创建或更新多对多关系

如何使用RESTful API创建或更新多对多关系,rest,Rest,我正试图准确地理解多对多关系是如何运作的 假设我有一部电影和演员模型演员属于许多电影,电影有许多演员。我知道我可以创建一个MovieActor表,该表包含来自Movie和Actor的外键。我不太清楚的部分是,我是否想创建一个新的演员,并将其与电影(POST)关联,或者更新一个现有的演员,将其与电影(PUT)关联,我是使用我的/api/actor端点还是为/api/movieactor创建单独的端点 您可以使用任何一种。通常情况下,RESTAPI(甚至是后台数据库)会对该数据进行非规范化,使其存在

我正试图准确地理解多对多关系是如何运作的


假设我有一部
电影
演员
模型<代码>演员属于许多
电影
电影
有许多
演员
。我知道我可以创建一个
MovieActor
表,该表包含来自
Movie
Actor
的外键。我不太清楚的部分是,我是否想创建一个新的
演员
,并将其与
电影
POST
)关联,或者更新一个现有的
演员
,将其与
电影
PUT
)关联,我是使用我的
/api/actor
端点还是为
/api/movieactor
创建单独的端点

您可以使用任何一种。通常情况下,RESTAPI(甚至是后台数据库)会对该数据进行非规范化,使其存在于两个条目中。但如何将数据通知REST服务器取决于您。您可以发布一个新的演员,在演员中包括电影,服务器(除了为演员添加新记录外)可以更新电影记录中存储的数据。反之亦然。或者两者兼而有之。没有规则规定对一个REST对象的修改不会对其他对象产生副作用

我认为人们通常会建议不要仅仅为了获取两个主要对象之间的关系数据而使用第三个API。它只会使客户机API变得复杂,引入更多延迟,并向客户机暴露太多的DB内部结构(使将来更难更改)