我遇到过这样一种说法:按照 DDD 设计的领域模型不应该用作 REST API 中的资源(source https://www.thoughtworks.com/insights/blog/rest-api-design-resource-modeling).
很明显,REST API 是应用程序的契约,而领域模型是实现的一部分,因此最好将这两件事分开,这样领域模型的更改不会自动意味着应用程序的更改。 REST API。
然而,我认为在小型项目中(其中 REST API 只有一个使用者 - javascript 前端,由一个团队开发),拥有单独模型的好处并不能证明分离模型的成本是合理的(不同的类 - 域模型和资源表示和模型之间的映射代码)。显然,领域层不能有任何对 REST 特定基础设施代码的引用(以保持关注点分离)。
域和 REST 模型是否应该分开?
使用 DDD 时,REST API 应始终与域模型分离。
这样做的主要原因是简化 - 您不想通过 API 将域模型的复杂性泄露给客户端。否则,客户需要了解您的域的细微差别和复杂性,这很可能会使 API 难以使用。
使用 DDD 的主要驱动力是一个复杂的问题域,因此这始终是一个问题。
然而,我认为在小型项目的情况下(……)拥有单独模型的好处并不能证明分离模型的成本是合理的(……)。
我同意有些项目中分离的域模型和 REST API 是过度设计的。然而,这些情况不适合 DDD,因为您不会从 DDD 中获得足够的好处来证明其成本是合理的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)