DataAccessレイヤー)。検証レベル駆動設計
我々はasp.netとウェブAPIを使用している原因となるデータ注釈を使用して(APIモデルの検証を追加するかどうか私達は私達のモデルと骨材の一貫性と整合性を確保するために、私たちのドメインモデルを検証しますが、私はいくつかの疑問を持っています)。
私の質問は何とか変ですが、私たちはApiレベルで検証を行うべきですか、それは重複とみなされ、おそらくドメインレベルで行われた検証との差異につながるでしょうか?
DataAccessレイヤー)。検証レベル駆動設計
我々はasp.netとウェブAPIを使用している原因となるデータ注釈を使用して(APIモデルの検証を追加するかどうか私達は私達のモデルと骨材の一貫性と整合性を確保するために、私たちのドメインモデルを検証しますが、私はいくつかの疑問を持っています)。
私の質問は何とか変ですが、私たちはApiレベルで検証を行うべきですか、それは重複とみなされ、おそらくドメインレベルで行われた検証との差異につながるでしょうか?
バリデーションには多くのタイプがあり、いくつかのレイヤーや他のレイヤーでのバリデーションが必要です。 So:
私はAggregates
のDomain
レイヤにコアビジネスルールを保持しています。例はthe account balance can not be negative
です。 commands
はDomain
層の一部であるためemail address must be valid
等
Lowレベルルールは、またDomain layer
内部、command's
コンストラクタ内部に保持されます。 delete
自身activities
又はadmin
任意activity
をdelete
ことができowner
等
承認チェックは、Application
層で行われます。
注:プレゼンテーション(RESTエンドポイント、MVCなど)、アプリケーション、ドメイン、インフラストラクチャのアーキテクチャに適用されます。
私は完全にあなたに同意しますが、私のための 'コンストラクタ'の検証についての懸念を持っています。私はこの検証をファクトリメソッドに移すことを好むでしょう。そして、私は工場のメソッドなしでコンストラクタを公開しません –
@WahidBitarそれはほとんど同じです –
こんにちは、私はあなたの質問に答えましたか?ありがとうございます –