SpringBoot统一返回结果:
在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素:
- code状态码:由后端统一定义各种返回结果的状态码
- message 描述:本次接口调用的结果描述
- data 数据:本次返回的数据。
{
"code": 200,
"msg": "操作成功",
"data": "OK",
}
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class ResultModel<T> implements Serializable {
/**
* 请求是否成功
*/
private boolean success;
/**
* 响应码
*/
private Integer errorCode;
/**
* 响应信息
*/
private String message = "";
private T data;
private String tranceId;
public static <T> ResultModel<T> success() {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setSuccess(true);
return resultModel;
}
public static <T> ResultModel<T> success(T data) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setData(data);
resultModel.setSuccess(true);
return resultModel;
}
public static <T> ResultModel<T> fail(Integer errorCode, String message) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(errorCode);
resultModel.setMessage(StringUtils.isNotBlank(message) ? message : "成功");
return resultModel;
}
public static <T> ResultModel<T> success(Integer errorCode, String message) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(errorCode);
resultModel.setMessage(StringUtils.isNotBlank(message) ? message : "成功");
resultModel.setSuccess(true);
return resultModel;
}
public static <T> ResultModel<T> successOrFail(Integer errorCode, String message) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(errorCode);
resultModel.setMessage(message);
if(errorCode!=200){
resultModel.setSuccess(false);
}else{
resultModel.setSuccess(true);
}
return resultModel;
}
public static <T> ResultModel<T> fail(GlobalExceptionCode errorCode) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(errorCode.getCode());
resultModel.setMessage(errorCode.getMessage());
return resultModel;
}
public static <T> ResultModel<T> fail(ErrorCodeEnum errorCode, String message) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(Integer.valueOf(errorCode.getErrorCode()));
resultModel.setMessage(StringUtils.isNotBlank(message) ? message : errorCode.getMessage());
return resultModel;
}
public static <T> ResultModel<T> fail(ErrorCodeEnum errorCode) {
ResultModel<T> resultModel = new ResultModel<>();
resultModel.setErrorCode(Integer.valueOf(errorCode.getErrorCode()));
resultModel.setMessage(errorCode.getMessage());
return resultModel;
}