· 状态码以及响应信息为枚举类
public enum RespStatus {
SUCCESS(200,"响应数据成功"),
ERROR(400,"响应数据失败"),
NOT_FOUNT(405,"手机号不存在"),
SEND_AUTH_CODE_SUCCESS(201,"发送验证码成功")
;
private int status;
private String message;
RespStatus(int status, String message) {
this.status = status;
this.message = message;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
· 响应数据(方式一)
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RespData<T> {
private int status;
private String message;
private T data;
private RespData(){
}
public static <T> RespData<T> success(){
return setData(RespStatus.SUCCESS,null);
}
public static <T> RespData<T> success(RespStatus respStatus){
return setData(respStatus,null);
}
public static <T> RespData<T> success(T t){
return setData(RespStatus.SUCCESS,t);
}
public static <T> RespData<T> success(RespStatus respStatus,T t){
return setData(respStatus,t);
}
public static <T> RespData<T> error(){
return setData(RespStatus.ERROR,null);
}
public static <T> RespData<T> error(RespStatus respStatus){
return setData(respStatus,null);
}
public static <T> RespData<T> error(T t){
return setData(RespStatus.ERROR,t);
}
public static <T> RespData<T> error(RespStatus respStatus, T t){
return setData(respStatus,t);
}
private static <T> RespData<T> setData(RespStatus respStatus,T t){
RespData<T> tRespData = new RespData<>();
tRespData.setStatus(respStatus.getStatus());
tRespData.setMessage(respStatus.getMessage());
tRespData.setData(t);
return tRespData;
}
}
· 响应数据(方式二)
public class ResponseInfo extends HashMap<String,Object> {
private static final String STATUS="status";
private static final String MESSAGE="message";
private static final String DATA="data";
private ResponseInfo(ResponseStatus responseStatus){
this.put(STATUS,responseStatus.getStatus());
this.put(MESSAGE,responseStatus.getMessage());
}
public static ResponseInfo success(){
return new ResponseInfo(ResponseStatus.OK);
}
public static ResponseInfo success(Object data){
ResponseInfo responseInfo = new ResponseInfo(ResponseStatus.OK);
responseInfo.put(DATA,data);
return responseInfo;
}
public static ResponseInfo success(ResponseStatus status){
ResponseInfo responseInfo = new ResponseInfo(status);
return responseInfo;
}
public static ResponseInfo error(){
return new ResponseInfo(ResponseStatus.ERROR);
}
public static ResponseInfo error(ResponseStatus responseStatus){
return new ResponseInfo(responseStatus);
}
public static ResponseInfo error(ResponseStatus responseStatus,Object data){
ResponseInfo responseInfo = new ResponseInfo(responseStatus);
responseInfo.put(DATA,data);
return responseInfo;
}
}
· 返回自定义异常
@Data
@AllArgsConstructor
public class ApiException extends RuntimeException{
private RespStatus respStatus;
}