域驱动设计中的验证级别

时间:2017-06-12 12:00:12

标签: asp.net validation asp.net-web-api domain-driven-design

我正在开发一个我们正在实施 DDD 概念的Web应用程序,我们将我们的网站构建为具有以下层的 N层应用程序(API,服务层) ,业务层,DataAccess层)。

我们确认我们的域模型以确保我们的模型和聚合的一致性和完整性但我有一些疑问是否应该在Api模型上添加验证(使用数据注释因为我们正在使用 asp.net web Api )。

我的问题有些奇怪,但我们是否应该在Api级别进行验证,否则它将被视为重复,并且可能会导致验证与域级别上的验证不同?

1 个答案:

答案 0 :(得分:2)

有许多类型的验证,一些验证应在某些层中完成,其他验证应在其他层中完成。所以:

我将核心业务规则保留在prepareForSegue层的Aggregates中。一个例子是Domain

the account balance can not be negative等低级规则保留在email address must be valid构造函数内,也位于command's内,因为Domain layercommands图层的一部分。< / p>

Domain可以owner拥有deleteactivities admin delete activity Application之内的{{1}}授权检查} layer。

注意:这适用于以下体系结构:表示(如REST端点,MVC),应用程序,域和基础结构。