目的:给返回对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败,以及具体的描述信息。
我们需要自定义错误码(因为前端的HTTP状态码默认的值比较少)和正常错误返回类。
ErrorCode :
package com.heo.ezyuserbackend.common;
public enum ErrorCode {
SUCCESS(0, "ok", ""),
PARAMS_ERROR(40000, "请求参数错误", ""),
NULL_ERROR(40001, 服务器托管网"请求参数为空", ""),
NOT_LOGIN(40100, "未登录", ""),
NO_AUTH(40101, "无权限", ""),
SYSTEM_ERROR(50000,"系统内部异常","");
private final int code;
/**
* 状态码信息
*/
private final String message;
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public String getDescription() {
return description;
}
/**
* 状态码描述(详情)
*/
private final String description;
ErrorCode(int code, String message, String description) {
this.code = code;
this.message = message;
this.description = description;
}
}
BaseResponse:
package com.heo.ezyuserbackend.common;
import lombok.Data;
import java.io.Serializable;
/**
* 通用返回类
*
* @param
*/
@Data
public class BaseResponseT> implements Serializable {
private int code;
private T d服务器托管网ata;
private String message;
private String description;
public BaseResponse(int code, T data, String message, String description) {
this.code = code;
this.data = data;
this.message = message;
this.description = description;
}
public BaseResponse(int code, T data,String message) {
this(code, data, message,"");
}
public BaseResponse(int code, T data) {
this(code, data, "", "");
}
public BaseResponse(ErrorCode errorCode) {
this(errorCode.getCode(), null, errorCode.getMessage(), errorCode.getDescription());
}
}
ResultUtil :
package com.heo.ezyuserbackend.common;
import com.fasterxml.jackson.databind.ser.Serializers;
/**
* 返回工具类
*/
public class ResultUtil {
/**
* 成功
*
* @param data
* @param
* @return
*/
public static T> BaseResponseT> success(T data) {
return new BaseResponse>(0, data, "ok");
}
/**
* 失败
*
* @param errorCode
* @return
*/
public static T> BaseResponseT> error(ErrorCode errorCode) {
return new BaseResponse>(errorCode);
}
/**
* 失败
*
* @param code
* @param message
* @param description
* @param
* @return
*/
public static T> BaseResponseT> error(int code, String message, String description) {
return new BaseResponse>(code, null, message, description);
}
/**
* 失败
*
* @param errorCode
* @param message
* @param description
* @param
* @return
*/
public static T> BaseResponseT> error(ErrorCode errorCode, String message, String description) {
return new BaseResponse>(errorCode.getCode(), null, message, description);
}
/**
* 失败
*
* @param errorCode
* @param description
* @return
*/
public static BaseResponse error(ErrorCode errorCode, String description) {
return new BaseResponse>(errorCode.getCode(), errorCode.getMessage(), description);
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: golang sync.Map之如何设计一个并发安全的读写分离结构?
在 golang中,想要并发安全的操作map,可以使用sync.Map结构,sync.Map 是一个适合读多写少的数据结构,今天我们来看看它的设计思想,来看看为什么说它适合读多写少的场景。 如下,是golang 中sync.Map的数据结构,其中 属性read…