そのため、古い WCF レスト サービスでは、応答オブジェクトを調べてインターフェイス メンバー GetStatus を実行し、ステータス コードを取得してから WebOperationContext に設定するヘルパー クラスがありました。Web API ではこれができなくなったので、これをDelegatingHandler
設定できるように検討しています。シナリオは次のとおりです。
すべての POST が201 - Created
コードになるわけではありません。たとえば、複雑なパラメーターを使用した GET タイプの操作に使用されるものもあります。ただし、一部の POST 操作は 201 になります。応答オブジェクトには、操作中に実行されるビジネス ロジックで設定される HttpStatus コードを返すIResult
メソッドを持つインターフェイスが呼び出されます。GetResult()
したがって、サービス操作 (投稿) を実行するとします。
var result = AdvancedSearch(myPayload);
を実行すると、200result.GetResult()
の an が返されます。HttpStatus
var result = AddNewUser(myPayload);
そして実行しresult.GetResult()
ます。201HttpStatus
の
現在、201 を返す必要があるこれらの操作では、単純にrequest.CreateResponse(...)
;から新しい応答オブジェクトを作成します。コントローラー自体のメソッド。しかし、チームの上級者の何人かはそれを好まない。彼らはこれを処理するための中心的なものを望んでいます。私たちが以前持っていたものに似たもの。
応答コードを設定するためのグローバル コンテキストがないため、DelegatingHandler
. メソッドで応答に取り組むことができることは知っていますが、これが可能にContinue
なるかどうかはわかりません。このメソッドは、実際の MVC フレームワークの外にある別のパイプラインで実行されることに気付きました。から応答ペイロードを取得し、インターフェイスからメソッドHttpResponseMessage
を実行する方法がわかりません。GetResult()
IResult
これは可能ですか?これを行う他の方法はありますか?コントローラーで応答を設定するのに行き詰まっていますか(実際にはそれで問題ありません。デューデリジェンスを行っているだけです)。
ティア