自定义接口返回通用类

博主通过将重复的后台接口返回代码进行重构,创建了一个RequestResult通用类和RequestCode枚举,用于规范HTTP请求状态码。通用类包含多种静态方法,以方便快捷地构建不同状态的响应数据,如请求成功、资源未找到、执行失败等,并可自定义消息和数据。这提高了代码复用性和可读性。
摘要由CSDN通过智能技术生成

最近工作任务比较重,心累,在写代码的时候发现一个问题,后台接口最后返回数据的那几行代码写起来很难受,总感觉一直在重复的写,所以决定把它提取一下,写个共通类,先看看提取共通前后的对比:
提取共通前:
在这里插入图片描述
提取共通后:
在这里插入图片描述

第一步:规范接口返回状态码

public class EnumUtil {

    /**
     * HTTP请求状态码枚举
     */
    public static enum RequestCode{

        SUCCESS(200,"请求成功。"),
        
        //逻辑上失败
        FAIL(201,"执行失败"),

        NOT_FOUND(404,"用户请求的资源不存在。"),

        //程序BUG
        SERVER_ERROR(500,"服务器发生错误。");


        public Integer code;
        public String msg;

        RequestCode(Integer code,String msg){
            this.code = code;
            this.msg = msg;
        }
    }
}
code不全是肯定的,我打个样,你们自己补充吧,后续我用到新的也会更新进来

第二步:新建接口返回通用类

public class RequestResult {

    /**
     * 请求成功
     * @return
     */
    public static Map<String,Object> SUCCESS(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",EnumUtil.RequestCode.SUCCESS.msg);
        return result;
    }

    /**
     * 请求成功
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESS(Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",EnumUtil.RequestCode.SUCCESS.msg);
        result.put("data",data);
        return result;
    }

    /**
     * 请求成功(需要返回JSON数据,方便请求方使用,返回JSONString串的话会有很多转义字符“/”)
     * 阿里巴巴的JSON包还是挺厉害的
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESSJSON(Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",EnumUtil.RequestCode.SUCCESS.msg);
        result.put("data", JSON.parse(data.toString()));
        return result;
    }

    /**
     * 请求成功,用户自定义msg
     * @param msg 用户自定义成功提示信息(比如:①用户添加成功②权限修改成功)
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESS(String msg,Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        result.put("data",data);
        return result;
    }

    /**
     * 请求成功,用户自定义msg(需要返回JSON数据,方便请求方使用,返回JSONString串的话会有很多转义字符“/”)
     * 阿里巴巴的JSON包还是挺厉害的
     * @param msg 用户自定义成功提示信息(比如:①用户添加成功②权限修改成功)
     * @param data 返回数据
     * @return
     */
    public static Map<String,Object> SUCCESSJSON(String msg,Object data){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        result.put("data",JSON.parse(data.toString()));
        return result;
    }

    /**
     * 请求成功,用户自定义msg,不需要返回数据
     * @param msg 用户自定义成功提示信息(比如:①用户删除成功②商品删除成功)
     * @return
     */
    public static Map<String,Object> SUCCESS(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SUCCESS.code);
        result.put("msg",msg);
        return result;
    }

    /**
     * 资源未找到
     * @return
     */
    public static Map<String,Object> NOTFOUND(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.NOT_FOUND.code);
        result.put("msg",EnumUtil.RequestCode.NOT_FOUND.msg);
        return result;
    }

    /**
     * 资源未找到,用户自定义msg
     * @param msg 用户自定义资源未找到提示信息(比如:①查询的订单不存在②查询的用户不存在)
     * @return
     */
    public static Map<String,Object> NOTFOUND(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.NOT_FOUND.code);
        result.put("msg",msg);
        return result;
    }

    /*---------------------------------------------------------逻辑上执行失败----------------------------------------------------------------*/
    /**
     * 执行失败
     * @return
     */
    public static Map<String,Object> FAIL(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.FAIL.code);
        result.put("msg",EnumUtil.RequestCode.FAIL.msg);
        return result;
    }

    /**
     * 执行失败,用户自定义msg
     * @param msg 用户自定义执行失败提示信息(比如:①普通用户查看VIP资源②普通用户登录管理员系统)
     * @return
     */
    public static Map<String,Object> FAIL(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.FAIL.code);
        result.put("msg",msg);
        return result;
    }
    /*---------------------------------------------------------逻辑上执行失败----------------------------------------------------------------*/

    /*---------------------------------------------------------程序报错----------------------------------------------------------------*/
    /**
     * 请求失败
     * @return
     */
    public static Map<String,Object> SERVERERROR(){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SERVER_ERROR.code);
        result.put("msg",EnumUtil.RequestCode.SERVER_ERROR.msg);
        return result;
    }

    /**
     * 请求失败,用户自定义msg
     * @param msg 用户自定义失败提示信息(比如:①用户删除失败②权限添加失败)
     * @return
     */
    public static Map<String,Object> SERVERERROR(String msg){
        Map<String,Object> result = new HashMap<>();
        result.put("code",EnumUtil.RequestCode.SERVER_ERROR.code);
        result.put("msg",msg);
        return result;
    }
    /*---------------------------------------------------------程序报错----------------------------------------------------------------*/

}
这个也不全,老规矩,我打个样,你们自己补充,后续我用到新的也会更新进来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值