冒泡APP(更新版)之封裝統一傳回格式
上篇博文介紹了bubble-common-base子產品的主要作用(封裝統一傳回格式),這篇博文主要是對于該子產品的工具類進行封裝。
子產品目錄
BaseApiResponse.java
package com.bubble.base;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
/**
* @author honey
* @date 2021-09-07 23:40:48
*/
@Data
@ToString
public final class BaseApiResponse<T> implements Serializable {
private static final long serialVersionUID = 3406150521702449352L;
private String code;
private String msg;
private T data;
private BaseApiResponse() {
}
private BaseApiResponse(String code, String msg) {
this.code = code;
this.msg = msg;
}
private BaseApiResponse(BaseResultCode baseResultCode, T data, Object... params) {
this.code = baseResultCode.getCode();
if (params != null && params.length > 0) {
this.msg = String.format(baseResultCode.getMsg(), params);
} else {
this.msg = baseResultCode.getMsg();
}
this.data = data;
}
public boolean isSuccess() {
return BaseResultCode.SUCCESS.getCode().equals(this.code);
}
public boolean isNotSuccess() {
return !isSuccess();
}
public static <T> BaseApiResponse<T> success(T data) {
return new BaseApiResponse<>(BaseResultCode.SUCCESS, data);
}
public static <T> BaseApiResponse<T> success() {
return success(null);
}
public static <T> BaseApiResponse<T> error(BaseResultCode baseResultCode) {
return error(baseResultCode, null);
}
public static <T> BaseApiResponse<T> error(BaseResultCode baseResultCode, T data) {
return new BaseApiResponse<>(baseResultCode, data);
}
public static <T> BaseApiResponse<T> error(BaseResultCode baseResultCode, T data, Object... params) {
return new BaseApiResponse<>(baseResultCode, data, params);
}
public static <T> BaseApiResponse<T> error(String msg) {
BaseResultCode unknown = BaseResultCode.UNKNOWN;
if (StringUtils.isBlank(msg)) {
return error(unknown);
} else {
return new BaseApiResponse<>(unknown.getCode(), msg);
}
}
}
BaseResultCode.java
package com.bubble.base;
/**
* @author honey
* @date 2021-09-08 00:04:49
*/
public enum BaseResultCode {
/**
* 統一傳回碼
*/
SUCCESS("00000", "成功"),
UNKNOWN("99999", "未知異常"),
SYSTEM_EXCEPTION("B9999", "系統異常"),
;
private final String code;
private final String msg;
BaseResultCode(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
這兩個類主要對統一傳回格式進行了一個封裝,之後代碼還會慢慢優化,小夥伴們如果有更好的建議可以積極留言喲,謝謝啦!
不怕在自己的夢想裡跌倒,隻怕在别人的奇迹中迷路。隻做自己夢想的主人,不做别人奇迹的聽衆。