返された応答を検証する必要があるWeb APIを使用しています。 apiから返される応答が正しい形式であることを保証するために、いくつかの汎用コードを記述したいと思います。ウェブAPIの応答を検証する方法
基本的には、ステータスやコメントなどのフィールドがあります。これらがnullまたは無効である場合、エラーコードを返す必要がありますが、これを達成する方法がわからない場合、ここで私を案内できますか?前もって感謝します。以下はあなたのために働くかもしれない
おかげで、 Sudama
返された応答を検証する必要があるWeb APIを使用しています。 apiから返される応答が正しい形式であることを保証するために、いくつかの汎用コードを記述したいと思います。ウェブAPIの応答を検証する方法
基本的には、ステータスやコメントなどのフィールドがあります。これらがnullまたは無効である場合、エラーコードを返す必要がありますが、これを達成する方法がわからない場合、ここで私を案内できますか?前もって感謝します。以下はあなたのために働くかもしれない
おかげで、 Sudama
。実際に使用している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;
}
}
コンテキストにはアクションディスクリプタ、HttpContext、Filter、RouteData、ModelState、Resultプロパティのみがあり、カスタムプロパティにアクセスする方法がわからないので、あまりにも多くの質問をお寄せいただきありがとうございます。 –
@SudamaTripathiどのカスタムプロパティにアクセスしますか? –
私はcontext.resultをチェックしていますが、私のカスタムPOCOオブジェクトがあるコンテンツタイプ、delcaredタイプ、formtters、ステータスコードと値を参照してください。 –
どのように応答を生成するのか、またどのような応答を生成するのかは不明です。たとえば、モデルからの応答を生成し、それをJSONとしてフォーマットしていますか? –
こんにちはShaun、私はasp.netコアWeb APIでsoap + xmlを受け入れる/返すカスタム入出力書式を書いています。グローバルフィルタを使用してリクエストを検証していますが、どのように出力を同じように達成できるかはわかりません。 –
結果フィルタを使用することができます。 https://docs.asp.net/en/latest/mvc/controllers/filters.html#result-filters –