【问题标题】:How do I create multiple associated records with a single POST request?如何使用单个 POST 请求创建多个关联记录?
【发布时间】:2022-07-11 23:48:51
【问题描述】:

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

据我了解,约定是为每个资源创建一个帖子,但如果这些资源需要其他记录的外键,我不知道如何跟踪创建的与该资源相关的记录的所有 ID记录。

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

【问题讨论】:

    标签: json api rest go


    【解决方案1】:

    惯例是为每个资源创建一个帖子

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

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

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

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

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

    这听起来是一个很好的解决方案。一项业务操作 -> 一项 API 调用 -> 一项数据库事务。它既好又简单。如果没有必要,不要让它变得更复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      相关资源
      最近更新 更多