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");
                }
            }
    
    
    
        }
  • 相关阅读:
    Shell编程笔记
    Git学习笔记
    JavaScript+jQuery实现简单的动态菜单
    JSON表单提交(ajax异步刷新)
    Json简单实例
    jsp分页
    浅谈this关键字
    Servlet+Javabean+Html实现简单的查询.删除.修改.添加四个功能
    Tomcat的安装与在myeclips中的配置
    jsp页面实现增删修改和查询
  • 原文地址:https://www.cnblogs.com/jasontarry/p/15485549.html
Copyright © 2011-2022 走看看