0

返された応答を検証する必要があるWeb APIを使用しています。 apiから返される応答が正しい形式であることを保証するために、いくつかの汎用コードを記述したいと思います。ウェブAPIの応答を検証する方法

基本的には、ステータスやコメントなどのフィールドがあります。これらがnullまたは無効である場合、エラーコードを返す必要がありますが、これを達成する方法がわからない場合、ここで私を案内できますか?前もって感謝します。以下はあなたのために働くかもしれない

おかげで、 Sudama

+0

どのように応答を生成するのか、またどのような応答を生成するのかは不明です。たとえば、モデルからの応答を生成し、それをJSONとしてフォーマットしていますか? –

+0

こんにちはShaun、私はasp.netコアWeb APIでsoap + xmlを受け入れる/返すカスタム入出力書式を書いています。グローバルフィルタを使用してリクエストを検証していますが、どのように出力を同じように達成できるかはわかりません。 –

+1

結果フィルタを使用することができます。 https://docs.asp.net/en/latest/mvc/controllers/filters.html#result-filters –

答えて

0

。実際に使用しているIActionResultの実装にそれを適用することはできますが、ObjectResultを使用していることを前提としています。以下はプロダクションコードではありません。むしろ、あなたができることを理解することができます。

public class MyResultFilter : IResultFilter 
{ 
    public void OnResultExecuted(ResultExecutedContext context) 
    { 

    } 

    public void OnResultExecuting(ResultExecutingContext context) 
    { 
     var result = context.Result as ObjectResult; 
     var value = result.Value as MyCustomType; 
     if (!IsValid(value) 
     { 
      context.Result = new StatusCodeResult(500); 
     } 
    } 

    private bool IsValid(MyCustomType value) 
    { 
     return value != null && 
      value.Status != null && 
      value.Remarks != null; 
    } 
} 
+0

コンテキストにはアクションディスクリプタ、HttpContext、Filter、RouteData、ModelState、Resultプロパティのみがあり、カスタムプロパティにアクセスする方法がわからないので、あまりにも多くの質問をお寄せいただきありがとうございます。 –

+0

@SudamaTripathiどのカスタムプロパティにアクセスしますか? –

+0

私はcontext.resultをチェックしていますが、私のカスタムPOCOオブジェクトがあるコンテンツタイプ、delcaredタイプ、formtters、ステータスコードと値を参照してください。 –

関連する問題