zoukankan      html  css  js  c++  java
  • NET 5 Api 统一数据格式

    我们经常有api 统一返回数据格式,又不想在每个控制器里写retun  json 格式

    这里是在action 方法处 aop的思想, 在action 上放置一个特性。

    Filter  类 如下

      public class FilterExtend : Attribute, IActionFilter
        {
            public void OnActionExecuted(ActionExecutedContext context)
            {
                var result = ((ObjectResult)context.Result).Value;
    
                context.Result = new JsonResult(new ResultRoot<object>()
                {
                    Result = ResultType.Succeed,
                    Data = result,
                    Msg="ok"
                });
    
                Console.WriteLine("OnActionExecuted");
            }
    
            public void OnActionExecuting(ActionExecutingContext context)
            {
    
                Console.WriteLine("OnActionExecuting");
            }
        }

     action  的方法如下

       [FilterExtend]
            [HttpGet]
            [Route("GetVs")]
            public IList<int> GetVs()
            {
                IList<int> vs = new List<int>();
                vs.Add(1);
                vs.Add(2);
                return vs;
            }

    实体类 

        public class ResultRoot<T>
        {
            public T Data { get; set; }
            public ResultType Result { get; set; }
            public string Msg { get; set; }
        }
    
        public enum ResultType
        {
            Succeed = 0,
            Faild = 1,
            NoAuth = 2,
            Other = 3
        }

    返回结果

    netframework 版本 的filter  略有区别

      public class AOPAuttibute : ActionFilterAttribute
        {
            public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
            {
                base.OnActionExecuted(actionExecutedContext);
    
                var objectContent = actionExecutedContext.Response.Content as ObjectContent;
    
                if (objectContent != null && objectContent.Value != null)
                {
                    Console.WriteLine( "aaa");
                }
            }
    
    
    
        }
  • 相关阅读:
    第四阶段学习总结
    第三阶段学习总结
    第二阶段学习总结
    第一阶段内容的学习总结
    第四单元及OO课程总结
    关于工具的碎碎念
    第三单元博客总结
    第二单元博客总结
    第一单元作业总结
    实验五 单元测试
  • 原文地址:https://www.cnblogs.com/jasontarry/p/15485549.html
Copyright © 2011-2022 走看看