统一接口的返回-R类
从而统一返回结构的格式-封装统一返回的R类。
第一步,我们需要定义一个R类,来确定返回的格式,成功就一种情况,但是失败有很多情况,所以此时就需要第二步,定义一个枚举类,来统一管理错误的code和message。
package com.xiaochu.qingning.common.utils;
import org.apache.http.HttpStatus;
import java.util.HashMap;
import java.util.Map;
/**
* @description: R类
* @author: klp
* @create: 2021-09-29 07:58
**/
public class R extends HashMap<String, Object> {
/**
* 序列ID
*/
private static final long serialVersionUID = 1L;
/**
* R的无参构造, 初始化信息
*/
public R() {
put("code", 0);
put("msg", "success");
}
/**
* error1: 返回默认error
* @return 返回默认error
*/
public static R error() {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常, 请联系管理员");
}
/**
* error2
* @param msg 错误信息
* @return 返回自定义信息的error
*/
public static R error(String msg) {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
}
/**
* 原先R的code和msg被覆盖
*
* @param code 错误码
* @param msg 错误信息
* @return 自定义的错误码和错误信息
*/
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}
/**
* ok1
* 加入了msg
*
* @param msg
* @return
*/
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
/**
* ok2: 加入了map
* @param map
* @return
*/
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
/**
* ok3: 直接返回"0", "success"
* @return
*/
public static R ok() {
return new R();
}
/**
* 放入自定义的key和value, 然后返回
* @param key
* @param value
* @return
*/
public R put(String key, Object value) {
super.put(key, value);
return this;
}
/**
* 得到这个对象的code
* @return
*/
public Integer getCode() {
return (Integer) this.get("code");
}
}