我正在web api上工作,我需要验证返回的响应。我想编写一些通用代码来确保从api返回的响应格式正确。如何验证网页api响应
基本上有类似状态字段,备注等,这应该是目前响应,如果这些都为空或无效,那么我应该返回一些错误代码,但不知道如何做到这一点,可以有人指导我在这里?提前致谢。
感谢, 苏达玛
我正在web api上工作,我需要验证返回的响应。我想编写一些通用代码来确保从api返回的响应格式正确。如何验证网页api响应
基本上有类似状态字段,备注等,这应该是目前响应,如果这些都为空或无效,那么我应该返回一些错误代码,但不知道如何做到这一点,可以有人指导我在这里?提前致谢。
感谢, 苏达玛
下可能为你工作。它假定您使用的是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;
}
}
上下文只有动作描述符,HttpContext,Filter,RouteData,ModelState和Result属性,所以不知道如何访问自定义属性,我很抱歉询问太多问题 –
@SudamaTripathi你想要访问哪些自定义属性? –
如果我检查context.result我看到内容类型,delcared类型,formtters,状态代码和值有我的自定义POCO对象任何消化访问属性 –
您不清楚您是如何生成响应,也不知道您生成的响应类型。例如,你是从模型生成一个响应并将其格式化为JSON? –
嗨,肖恩,我写了自定义输入/输出格式化程序接受/返回SOAP + XML在asp.net核心网络API。我正在验证使用全局过滤器的请求,但不知道如何实现输出相同的事情。 –
你可以使用结果过滤器。 https://docs.asp.net/en/latest/mvc/controllers/filters.html#result-filters –