zoukankan      html  css  js  c++  java
  • 【工具类】Api接口封装

    • 返回结果编码枚举
    public enum ControllerResponseEnum {
        /**
         * 调用成功
         */
        SUCCESS(1, "Api调用成功"),
    
        /**
         * 调用失败
         */
        FAIL(-1, "Api调用失败"),
        // 通用异常
        SERVER_EXCEPTION(500100, "服务端异常"),
        PARAMETER_ISNULL(500101, "输入参数为空"),
        // 业务异常
        USER_NOT_EXSIST(500102, "用户不存在"),
        ONLINE_USER_OVER(500103, "在线用户数超出允许登录的最大用户限制。"),
        SESSION_NOT_EXSIST(500104, "不存在离线session数据"),
        NOT_FIND_DATA(500105, "查找不到对应数据");
    
    
        /**
         * 返回编码
         */
        private final Integer code;
    
        /**
         * 编码对应的消息
         */
        private final String msg;
    
        ControllerResponseEnum(Integer code, String msg) {
            this.code = code;
            this.msg = msg;
        }
    
        /**
         * 获取枚举类型的编码值
         */
        public Integer code() {
            return this.code;
        }
    
        /**
         * 获取枚举类型的编码含义
         */
        public String msg() {
            return this.msg;
        }
    
        /**
         * 根据枚举名称--获取枚举编码
         */
        public static Integer getCode(String name) {
            for (ControllerResponseEnum resultCode : ControllerResponseEnum.values()) {
                if (resultCode.name().equals(name)) {
                    return resultCode.code;
                }
            }
            return null;
        }
    }
    
    • 返回结果统一封装
    public class ControllerResponse<T> implements Serializable {
        private static final long serialVersionUID = 3436477890959388499L;
    
        private T data;
        private int code;
        private String message;
    
        /**
         * @return 返回不带数据的封装类
         */
        public ControllerResponse<T> renderSuccess() {
            return renderSuccess(ControllerResponseEnum.SUCCESS.msg(), ControllerResponseEnum.SUCCESS.code(), null);
        }
    
        /**
         * @return 返回带成功信息的封装类
         */
        public ControllerResponse<T> renderSuccess(String msg) {
            return renderSuccess(msg, ControllerResponseEnum.SUCCESS.code(), null);
        }
    
        /**
         * @return 返回带成功状态的封装类
         */
        public ControllerResponse<T> renderSuccess(int status) {
            return renderSuccess(ControllerResponseEnum.SUCCESS.msg(), status, null);
        }
    
        /**
         * @return 返回带数据的封装类
         */
        public ControllerResponse<T> renderSuccess(T obj) {
            return renderSuccess(ControllerResponseEnum.SUCCESS.msg(), ControllerResponseEnum.SUCCESS.code(), obj);
        }
    
        /**
         * @return 返回带成功信息,带成功状态,带数据的封装类
         */
        public ControllerResponse<T> renderSuccess(String msg, int status, T obj) {
            this.message = msg;
            this.code = status;
            this.data = obj;
            return this;
        }
    
        /**
         * @return 返回不带数据的封装类
         */
        public ControllerResponse<T> renderError() {
            return renderSuccess(ControllerResponseEnum.FAIL.msg(), ControllerResponseEnum.FAIL.code(), null);
        }
    
        /**
         * @return 返回带失败信息的封装类
         */
        public ControllerResponse<T> renderError(String msg) {
            return renderSuccess(msg, ControllerResponseEnum.FAIL.code(), null);
        }
    
        /**
         * @return 返回带失败状态的封装类
         */
        public ControllerResponse<T> renderError(int status) {
            return renderSuccess(ControllerResponseEnum.FAIL.msg(), status, null);
        }
    
        /**
         * @return 返回带数据的封装类
         */
        public ControllerResponse<T> renderError(T obj) {
            return renderError(ControllerResponseEnum.FAIL.msg(), ControllerResponseEnum.FAIL.code(), obj);
        }
    
        /**
         * @return 返回带成功信息,带失败状态,带数据的封装类
         */
        public ControllerResponse<T> renderError(String msg, int status, T obj) {
            this.message = msg;
            this.code = status;
            this.data = obj;
            return this;
        }
    }
    

    Api接口的封装有利于管理接口和前端交互,是必不可少的。后期还可以通过拦截器对所有接口进行统一封装,配合注解实现自定义,实现更优雅的编码。

  • 相关阅读:
    用ProFTPD构建FTP服务器
    Js数组里剔除指定的元素(不是指定的位置)
    JS跨域设置和取Cookie
    ajax test
    js下判断 iframe 是否加载完成的完美方法
    使用div模拟出frameset效果
    js中call与apply用法
    phpstorm 快捷键
    JQuery中 数组与字符串(过滤,排序,拆分,合并)
    基于 Apache 在本地配置多个虚拟主机
  • 原文地址:https://www.cnblogs.com/zllk/p/14899788.html
Copyright © 2011-2022 走看看