最近工作任务比较重,心累,在写代码的时候发现一个问题,后台接口最后返回数据的那几行代码写起来很难受,总感觉一直在重复的写,所以决定把它提取一下,写个共通类,先看看提取共通前后的对比:
提取共通前:
提取共通后:
第一步:规范接口返回状态码
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;
}
/*---------------------------------------------------------程序报错----------------------------------------------------------------*/
}