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

时间:2018-05-05 13:39:39

标签: rest

我试图准确理解多对多关系如何运作。

假设我有MovieActor模型。 Actors属于许多MoviesMovies属于Actors。我知道我可以创建一个MovieActor表,其中包含来自MovieActor的外键。我不太清楚的部分是,我是否要创建新的Actor并将其与MoviePOST)相关联或将现有的Actor更新为将其与MoviePUT)相关联,我是否使用/api/actor端点,还是为/api/movieactor创建单独的端点?

1 个答案:

答案 0 :(得分:1)

您可以使用其中之一。通常,REST API(甚至是备份数据库)将对该数据进行非规范化,以使其存在于两个条目中。但是,您需要如何通知REST服务器数据。您可以POST一个新的Actor,并在Actor中包含Movies-而Server(除了为Actor添加新记录外)还可以更新存储在Movie记录中的数据。或相反亦然。或两者。没有规则修改一个REST对象不会对其他对象产生副作用。

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