我正在开发一个我们正在实施 DDD 概念的Web应用程序,我们将我们的网站构建为具有以下层的 N层应用程序(API,服务层) ,业务层,DataAccess层)。
我们确认我们的域模型以确保我们的模型和聚合的一致性和完整性但我有一些疑问是否应该在Api模型上添加验证(使用数据注释因为我们正在使用 asp.net 和 web Api )。
我的问题有些奇怪,但我们是否应该在Api级别进行验证,否则它将被视为重复,并且可能会导致验证与域级别上的验证不同?
答案 0 :(得分:2)
有许多类型的验证,一些验证应在某些层中完成,其他验证应在其他层中完成。所以:
我将核心业务规则保留在prepareForSegue
层的Aggregates
中。一个例子是Domain
。
the account balance can not be negative
等低级规则保留在email address must be valid
构造函数内,也位于command's
内,因为Domain layer
是commands
图层的一部分。< / p>
Domain
可以owner
拥有delete
或activities
admin
delete
activity
Application
之内的{{1}}授权检查} layer。
注意:这适用于以下体系结构:表示(如REST端点,MVC),应用程序,域和基础结构。