【发布时间】:2020-08-10 06:11:25
【问题描述】:
这个问题对我来说乍一看似乎很傻,但后来我意识到我还没有正确的答案,有趣的是在我的搜索中也没有找到很好的解释。 我是领域驱动设计概念的新手,因此,即使问题是基本问题,也可以随意添加任何注意事项。
我正在设计 Rest API 来配置服务器实例,我想出了一个名为 Instance 的聚合,其中包含一个 Configurations 列表,在给定时间只有一个特定配置处于活动状态。
要添加一个配置,可以调用一个端点POST /instances/{id}/configurations,其主体在所需的配置上。作为响应,如果一切正常,它将收到一个 HTTP 204,其 Header Location 包含新的配置 ID。
我计划只有一个控制器 InstanceController,它会调用 InstanceService 来操作实例聚合然后存储到存储库。
由于 ID 是由存储库生成的,如果我调用 Instance.addConfiguration,然后调用 InstanceRepository.store,我将如何获取新创建的配置的 ID?我的意思是,它是一个列表,所以调用Instance.configuration.identity 并非易事
一个选项会在实例中实现一个方法,例如getLastAddedConfiguration,但这看起来真的很脆弱。
在这种情况下,一般方法是什么?
【问题讨论】:
标签: rest architecture aggregate domain-driven-design ddd-repositories