2016-06-01 16 views
1

現在、FluentValidationが関連付けられたWeb APIプロジェクトがあり、要求が入っているかどうかを確認しています。これは、リクエストが意味をなさないことを確認するうえで問題ありません。要求のWeb APIの確認

私の次のステップはリクエストを確認することです。私はリンクされたエンティティがかどうかを確認するために、現在のユーザー

  • チェックに属していることを確認する必要があり

    1. :私はこれの意味することは、いくつかのPOST(作成)既存のエンティティへのリンクを要求し、以下のチェックを必要とするかもしれないですユーザーはすでに同じタイプの「アクティブな」エンティティを要求しています。
    2. リンクされたエンティティが要求されたエンティティ

    がどのように私はこれらのチェックを行うことができますサポートしていることを確認?私はそれをFluentValidationに結びつけたくないのです。これはリクエストの検証だけで、検証のためにBad Requestを返そうとするとDBに行きたくないからです。

    コントローラの各メソッドにこれらのチェックを追加できますが、それはあまりうまくありません。 FluentValidationがそれをやった後でコントローラに当たる前に呼び出される、プラグインできるActionまたは類似のものがありますか?

    おかげ

    アレックス

  • 答えて

    2

    これらのチェックを行うためにcustom Action Filtersを作成することは可能ですが、チェックしようとしているものが適用されない限り、私の経験では、それは一般的にそうしても意味がありません。ほぼすべてのリクエスト(例えば、ユーザーがログインしていることを確認するなど)

    あなたが話している種類のチェックのロジックを別のユーティリティクラスに入れて、簡単に再利用できるようにしておき、チェックが必要なものに基づいて適切なユーティリティメソッドを呼び出すことができますその行動のために発生する。

    +1

    プロジェクトの概要を間違えてしまったので、私は実際にアクションのFluentValidationチェックを行います。もし私がAction Filterとしてそれをしたら、私は欲しくない検証の前になります。私はあなたの提案をして、ユーティリティクラスとしてやっていきます。少なくとも、検証と検証をお互いに続けてください。 – ADringer

    関連する問題