【发布时间】:2018-04-10 04:42:28
【问题描述】:
我正在为在线拍卖服务创建一个新的 REST/超媒体 API。
我将此作为练习来更好地理解领域驱动设计方法,因为在大多数情况下,这似乎是一种很好的方法。
我的一些实体的示例是:Item、Listing、Bid、Purchase、BidHistory 等。 我将列表实体标识为一个聚合根,我计划通过它管理投标、项目等。
据我所知,聚合根的概念适用于我的持久性/域层,不应该是我的视图层的关注点(在我的例子中是 JSON 或 XML 资源表示)。
是这样吗?如果是这样,这是否意味着仍然可以通过我的 REST API 中的 URI 端点公开非聚合根资源,或者我是否“受限”只能通过我的 API 端点公开聚合根?
我的想法是聚合根在持久性对象的领域中,它在概念上与域模型是分开的,所以我应该能够公开两个 URI,例如:
GET /api/v1/listing/465489
和
GET /api/v1/listing/465489/item
不管Listing是否是Item的聚合根。
我在这方面是否正确,或者我是否需要在开始实施任何代码之前调整我对这一点的理解?
【问题讨论】:
标签: rest architecture domain-driven-design data-modeling aggregateroot