.NET CORE API 统一封装结果返回

文章展示了一个名为`Result`的公共类,用于封装HTTPAPI请求的成功或失败状态,包括状态码、消息和额外数据。同时,`ApiResultHelper`类提供了一系列静态方法,方便快捷地创建表示不同状态的结果对象,如成功、失败、参数错误等。在示例的`GuestLogin`方法中,使用这些工具处理登录请求的响应。
 public class Result
    {
        public static int SUCCESS = 1;
        public static int FAILURE = -1;
        public static int OTHER = 2;      //其他,页面显示
        public static int FAILURE_AUTHC = -9999;

        public static String STR_PARAM_NOT_NULL = "传入参数不能为空";
        public static String STR_SUCCESS = "操作成功";
        public static String STR_FAIL = "操作失败";


        /**
         * 请求是否错误,默认false
         */
        public Boolean success = false;
        /**
         * 请求返回code
         */
        public int code {get;set;}
        /**
         * 请求返回描述
         */
        public String msg {get;set;}

        public Object obj {get;set;}

        public Result() { }

        public Result(int code, String msg)
        {
            this.code = code;
            this.msg = msg;
        }
        public Result(int code, String msg, Boolean success)
        {
            this.code = code;
            this.msg = msg;
            this.success = success;
        }

        public Boolean isSuccess()
        {
            return success;
        }

        public void setSuccess(Boolean success)
        {
            this.success = success;
        }

        public String getMsg()
        {
            return msg;
        }

        public void setMsg(String msg)
        {
            this.msg = msg;
        }

        public Object getObj()
        {
            return obj;
        }

        public void setObj(Object obj)
        {
            this.obj = obj;
        }

        public int getCode()
        {
            return code;
        }

        public void setCode(int code)
        {
            this.code = code;
        }
    }

第二步:

 public class ApiResultHelper
    {
        #region 返回值结构
        /// <summary>
        /// ajax失败
        /// </summary>
        /// <param name="msg">失败的消息</param>
        /// <returns></returns>
        public static Result renderError(string msg)
        {
            Result result = new Result();
            result.setCode(Result.FAILURE);
            result.setMsg(msg);
            return result;
        }

        /// <summary>
        /// ajax失败
        /// </summary>
        /// <param name="msg">失败的消息</param>
        ///<param name="code">失败的编码</param>
        /// <returns></returns>
        public static Result renderError(string msg, int code)
        {
            Result result = new Result();
            result.setCode(code);
            result.setMsg(msg);
            return result;
        }
        /// <summary>
        /// ajax失败
        /// </summary> 
        /// <returns></returns>
        public static Result renderError()
        {
            Result result = new Result();
            result.setCode(Result.FAILURE);
            result.setMsg(Result.STR_FAIL);
            return result;
        }

        public static Result renderError(object obj)
        {
            Result result = new Result();
            result.setCode(Result.FAILURE);
            result.setObj(obj);
            return result;
        }

        /// <summary>
        /// ajax失败,参数为空或错误
        /// </summary> 
        /// <returns></returns>
        public static Result renderErrorParamNotNull()
        {
            Result result = new Result();
            result.setCode(Result.FAILURE);
            result.setMsg(Result.STR_PARAM_NOT_NULL);
            return result;
        }

        /// <summary>
        /// ajax成功
        /// </summary> 
        /// <returns></returns>
        public static Result renderSuccess()
        {
            Result result = new Result();
            result.setSuccess(true);
            result.setMsg(Result.STR_SUCCESS);
            return result;
        }

        /// <summary>
        /// 成功
        /// </summary>
        /// <param name="msg">消息</param>
        /// <returns></returns>
        public static Result renderSuccess(string msg)
        {
            Result result = new Result();
            result.setSuccess(true);
            result.setMsg(msg);
            return result;
        }

        /// <summary>
        /// 成功
        /// </summary>
        /// <param name="obj">对象</param>
        /// <returns></returns>
        public static Result renderSuccess(object obj)
        {
            Result result = new Result();
            result.setSuccess(true);
            result.setObj(obj);
            return result;
        }

        /// <summary>
        /// 成功
        /// </summary>
        /// <param name="obj">对象</param>
        /// <param name="msg">消息</param>
        /// <returns></returns>
        public static Result renderSuccess(object obj, string msg)
        {
            Result result = new Result();
            result.setSuccess(true);
            result.setMsg(msg);
            result.setObj(obj);
            return result;
        }
        #endregion

    }

第三步:调用

  [HttpGet]
        [Route("???")]
        public ActionResult<Result> GuestLogin()
        {
            var email = Appsettings.GetNode("email");
            var pass = Appsettings.GetNode("pass");
            try
            {
                var jm = ToolClass.AesEncrypt(pass, Appsettings.GetNode("??"), Appsettings.GetNode("??"));
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("pass", jm);
                if (!string.IsNullOrEmpty(email))
                {
                    dic.Add("email", email);
                }
                var res = HttpGetPost.DoPost(Appsettings.GetNode("??"), dic);
                return new ContentResult { Content = res.Result, ContentType = "application/json" };
            }
            catch (Exception)
            {
                return ApiResultHelper.renderError("Internal exception", 400);
            }

        }

.NET Core Web API 统一返回值是指在开发过程中,通过统一的数据结构来返回API结果,以便客户端能够方便地处理和解析返回的数据。 .NET Core Web API通常使用HTTP协议进行通信,因此通常返回的是一个HTTP响应。在实际开发中,我们可以定义一个统一返回值对象,该对象包含了常用的返回信息字段,比如状态码、消息、数据等。 统一返回值的优点包括: 1. 统一的数据结构,提高了API的可维护性和可扩展性,便于开发者理解和处理返回的数据。 2. 提高了代码的重用性,避免了重复编写返回结果的逻辑。 3. 方便前端开发人员解析和处理返回值,减少了前后端的沟通成本。 常见的.NET Core Web API统一返回值格式可以是一个JSON对象,其中包含以下字段: - StatusCode(状态码): 表示API返回的状态,比如200代表成功,400代表请求错误,500代表服务器内部错误等。 - Message(消息): 返回给客户端的消息,用于提示客户端请求的处理情况。 - Data(数据): API返回的具体数据,可以是一个实体对象、列表或自定义的数据结构。 除了这些基本字段外,还可以根据具体的业务需求添加其他自定义字段。在返回时,可以将这些字段序列化为JSON字符串并将其作为HTTP响应的内容返回给客户端。 在.NET Core Web API中,可以通过定义一个统一返回值模型类,并使用ActionResult或IActionResult作为方法返回类型来实现统一返回值。在具体的API方法实现中,可以根据业务逻辑将要返回的数据封装统一返回值对象中,并根据请求的处理结果返回相应的状态码和消息。 总之,通过.NET Core Web API统一返回值,可以提高接口的统一性、一致性和可读性,减少错误处理代码的编写工作量,同时也提高了前后端开发的协作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值