如何用单个POST请求创建多个关联记录?



这里的资源是一个Log类型,将创建5个不同的记录,一个用于天气,位置等…它们都将共享关联。

我的理解是,惯例是为每个资源创建一个帖子,但如果这些资源需要其他记录的外键,我无法弄清楚如何跟踪与该日志相关的创建的记录的所有id。

现在,我正在发送创建单个请求中所有资源所需的所有数据,如果出现一个错误,则不会创建任何资源,因为我将使用事务。这是惯例吗?

惯例是为每个资源创建一个post

当您有一个简单的模型,其中一个对象受一个用户操作的影响时,此约定非常有效。该模型非常常见,并且在每本REST书籍/文章中都有实现。

现实更复杂,你的问题就是一个很好的例子。在每个表上实现PUBLIC API是众所周知的,不幸的是它被广泛传播的反模式:

https://martinfowler.com/bliki/AnemicDomainModel.html

经验法则,围绕您的业务问题构建您的解决方案,而不是围绕技术框架或模式。

现在我正在发送创建所有资源所需的所有数据在单个请求

听起来是个很好的解决方案。一个商业行为->一个API调用->一个DB事务。这很好也很简单。如果没有必要,不要把它弄得更复杂。

最新更新