【发布时间】:2014-09-25 23:50:12
【问题描述】:
REST 有一个统一的接口约束,下面是一个非常压缩的基于意见的格式。
- 您必须使用 HTTP、URI、MIME 等标准...
- 您必须使用超链接。
- 您必须使用 RDF 词汇对数据和超链接进行语义注释。
- 您执行所有这些操作是为了将客户端与服务的实现细节分离。
据我所知,带 CQRS(或不带 CQRS)的 DDD 非常相似。
- 您可以通过 CQRS 定义与域模型交互的接口。该接口由命令和查询类组成。
- 您可以通过 DDD 定义域事件以将域模型与持久性细节分离。
- 通过 DDD,每个有界上下文都有一种普遍存在的语言来表达语义。
- 您执行所有这些操作是为了将域模型与外界完全分离。
是否可以将 REST 统一接口映射到由命令和查询以及域事件定义的域接口? (所以会自动生成 REST 服务代码。)
是否可以将链接数据语义映射到普遍存在的语言? (因此您无需定义非常相似的术语,只需查找并重用现有词汇即可。)
请在您的答案中添加一个非常简单的映射示例,为什么是或为什么不是!
【问题讨论】:
-
这让我想起了裸体物体 (nakedobjects.org)。我看到还有一种叫做restful objects的东西(restfulobjects.org):infoq.com/articles/Intro_Restful_Objects
-
实际上命令、域事件等的属性不应该被隐藏。它们是代表领域模型接口的 DTO。所以我认为裸体物体会做一些完全不同的事情。 RESTful 对象得到了错误的映射:“在 Restful Objects 规范中,每个域对象都是一个资源”。但我没有更多的帮助,我不想写答案。
标签: rest domain-driven-design cqrs