0

我正在web api上工作,我需要验证返回的响应。我想编写一些通用代码来确保从api返回的响应格式正确。如何验证网页api响应

基本上有类似状态字段,备注等,这应该是目前响应,如果这些都为空或无效,那么我应该返回一些错误代码,但不知道如何做到这一点,可以有人指导我在这里?提前致谢。

感谢, 苏达玛

+0

您不清楚您是如何生成响应,也不知道您生成的响应类型。例如,你是从模型生成一个响应并将其格式化为JSON? –

+0

嗨,肖恩,我写了自定义输入/输出格式化程序接受/返回SOAP + XML在asp.net核心网络API。我正在验证使用全局过滤器的请求,但不知道如何实现输出相同的事情。 –

+1

你可以使用结果过滤器。 https://docs.asp.net/en/latest/mvc/controllers/filters.html#result-filters –

回答

0

下可能为你工作。它假定您使用的是ObjectResult,但您可以将其调整为实际使用的IActionResult实现。以下不是产品代码;相反,它会让你知道你能做什么。

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我看到内容类型,delcared类型,formtters,状态代码和值有我的自定义POCO对象任何消化访问属性 –