通用返回类:在我们后端向前端传输数据的时候,能够让前端清楚的知道返回成功或失败的信息。
1.首先需要一个定义几个公认的字段,在向前端返回时带上信息,例如 code,data,messge,description。并且写出构造方法。
package com.zb.usercenter.common;
import lombok.Data;
import java.io.Serializable;
/**
* 通用返回类
* @param <T>
*/
@Data
public class BaseResponse<T> implements Serializable {
private int code;
private T data;
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;
}
/**
* 成功
* @param code
* @param data
* @param message
*/
public BaseResponse(int code, T data,String message) {
this(code,data,message,"");
}
/**
* 成功
* @param code
* @param data
*/
public BaseResponse(int code,T data){
this(code,data,"","");
}
/**
* 失败
* @param errorCode
*/
public BaseResponse(ErrorCode errorCode){
this(errorCode.getCode(),null,errorCode.getMessage(),errorCode.getDescription());
}
}
2.但是这样的话我们在写返回类的时候还是有些复杂,要自己定义code等数据还有代码方法的类型也要改,不妨让我们再一起写一个通用的结果通用类。这样的话,在我们使用的过程中,只需要把我们的结果在return的时候传进结果工具类当中就可以了
package com.zb.usercenter.common;
public class ResultUtils {
/**
* 成功
* @param data
* @param <T>
* @return
*/
public static <T> BaseResponse<T> success(T data){
return new BaseResponse<>(0,data,"ok","");
}
/**
* 失败
* @param errorCode
* @return
*/
public static BaseResponse error(ErrorCode errorCode){
return new BaseResponse<>(errorCode);
}
/**
* 失败
* @param code
* @param message
* @param description
* @return
*/
public static BaseResponse error(int code,String message,String description){
return new BaseResponse<>(code,null,message,description);
}
/**
* 失败
* @param errorCode
* @param message
* @param description
* @return
*/
public static BaseResponse 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);
}
}