为什么域模型不应该用作REST API中的资源?

前端之家收集整理的这篇文章主要介绍了为什么域模型不应该用作REST API中的资源?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现一个声明,即根据DDD设计的域模型不应该用作REST API中的资源( source).

很明显,REST API是应用程序的契约,而域模型是实现的一部分,因此最好将这两个事物分开,这样域模型的更改不会自动意味着更改REST API.

但是,我认为在小型项目(REST API只有一个消费者 – 由一个团队开发的javascript前端)的情况下,拥有单独模型的好处并不能证明分离模型的成本(不同的类 – 域模型和资源表示和模型之间的映射代码).显然,域层不能引用REST特定的基础结构代码(以保持关注点分离).

域和REST模型应该分开吗?

解决方法

使用DDD时,REST API应始终与域模型分离.

这样做的主要原因是简化 – 您不希望通过API将域模型的复杂性泄露给客户端.否则,客户需要了解域的细微差别和复杂性,这很可能使API难以使用.

使用DDD的主要驱动因素是一个复杂的问题域,因此这始终是一个问题.

However,I think in case of small projects (…) the benefits of having separate models does not justify the cost of separating the models (…).

我同意有些项目的分离域模型和REST API过度工程化.但是,这些案例不适合DDD,因为您不会从DDD中获益足以证明其成本合理.

猜你在找的HTML相关文章