「ユーザーはXを実行できますが、ユーザーはオブジェクトYを所有しています」:モデル検証またはコントローラーロジックにロジックを実装しますか?
-
27-10-2019 - |
質問
たとえば、「ユーザーは、ユーザーが作成したコメントのみを編集または削除できます」というロジックを検討してください。
私のコントローラーアクションは、現在ログインしているユーザーがコメントに影響を与える可能性があるかどうかをチェックするロジックを繰り返します。例 ジェネラコディセタグプレ
もちろん、そのスニペットをコピーして貼り付けないように、そのロジックをメソッドにバンドルすることはできます。ただし、そのコードをコントローラーから取り出してValidationAttributeに入れると、アクションが小さくなり、テストを記述しやすくなります。例 ジェネラコディセタグプレ
モデル検証はこの仕事に適したツールですか?私はその懸念をコントローラーのアクションから取り除くのが好きです。しかし、この場合、事態はさらに複雑になる可能性があります。これは、このアクションがRESTful APIの一部であり、ModelStateの検証エラーに応じて異なるHTTPステータスコードを返す必要があると考える場合に特に当てはまります。
この場合の「ベストプラクティス」はありますか?
解決
個人的には見栄えが良いと思いますが、アノテーションに夢中になっています。これはプレゼンテーション層に属していないので、サービス層で処理する必要があると思います。
次の行に何かあります: ジェネラコディセタグプレ
所属していません StackOverflow