业务场景:
业务需求要求,需要对 WebApi 接口服务统一返回参数,也就是把实际的结果用一定的格式包裹起来,比如下面格式:
{
\"response\":{
\"code\":200,
\"msg\":\"Remote service error\",
\"result\":\"\"
}
}
具体实现:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
public class WebApiResultMiddleware : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext context)
{
//根据实际需求进行具体实现
if (context.Result is Result)
{
var Result = context.Result as Result;
if ( Result.Value == null)
{
context.Result = new Result(new { code = 404, sub_msg = \"未找到资源\", msg = \"\" });
}
else
{
context.Result = new Result(new { code = 200, msg = \"\", result = Result.Value });
}
}
else if (context.Result is EmptyResult)
{
context.Result = new Result(new { code = 404, sub_msg = \"未找到资源\", msg = \"\" });
}
else if (context.Result is ContentResult)
{
context.Result = new Result(new { code = 200, msg = \"\", result= (context.Result as ContentResult).Content });
}
else if (context.Result is StatusCodeResult)
{
context.Result = new Result(new { code = (context.Result as StatusCodeResult).StatusCode, sub_msg = \"\", msg = \"\" });
}
}
}
Startup添加对应配置:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options =>
{
options.Filters.Add(typeof(WebApiResultMiddleware));
options.RespectBrowserAcceptHeader = true;
});
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
-
二层、三层、四层交换机的区别!!
2026-05-19栏目: 教程
-
阿里云安全肖力:云原生安全定义下一代安全架构
2026-05-19栏目: 教程
-
阿里巴巴开源 Sentinel 限流方案搭建
2026-05-19栏目: 教程
-
微信开发之token认证
2026-05-19栏目: 教程
-
白皮书首发:173位大数据决策者眼中的数据中台是长这样的
2026-05-19栏目: 教程
