如果沒有看前面幾篇文章請先看前面幾篇
SpringBoot定義優(yōu)雅全局統(tǒng)一Restful API 響應(yīng)框架
SpringBoot定義優(yōu)雅全局統(tǒng)一Restful API 響應(yīng)框架二
SpringBoot定義優(yōu)雅全局統(tǒng)一Restful API 響應(yīng)框架三
目前我們好像似乎解決所有問題宏侍,達到了我們理想的效果如下
但是在業(yè)務(wù)錯誤返回時候不太理想如下
沒有必要返回 reuqest
和errorMsg
還有如果業(yè)務(wù)非常復(fù)雜的時候敦腔,會不會出現(xiàn)錯誤碼分配使用混亂和重復(fù)問題這個問題應(yīng)該如何避免和解決呢?
這個時候我想到 使用業(yè)務(wù)錯誤常量來代替錯誤碼淘正,這樣更加見字識意笆制, 進一步抽象錯誤常量公共接口模塊
package cn.soboys.springbootrestfulapi.common.error;
import java.util.List;
/**
* @author 公眾號 程序員三時
* @version 1.0
* @date 2023/5/9 20:14
* @webSite https://github.com/coder-amiao
* 定義錯誤常量 代替錯誤碼,避免業(yè)務(wù)復(fù)雜錯誤碼分配重復(fù)等問題
*/
public interface CommonErrorConstant {
/**
* 公共錯誤碼定義
*/
public static final String InvalidRequest = "InvalidRequest";
public static final String InvalidArgument = "InvalidArgument";
public static final String NotFound = "NotFound";
public static final String UnknownError = "UnknownError";
public static final String OK = "OK";
public static final String FAIL = "FAIL";
/**
* 其他自定義業(yè)務(wù)錯誤碼
*/
}
通用錯誤碼
package cn.soboys.springbootrestfulapi.common.error;
import cn.soboys.springbootrestfulapi.common.resp.ResultCode;
/**
* @author 公眾號 程序員三時
* @version 1.0
* @date 2023/5/2 21:36
* @webSite https://github.com/coder-amiao
*/
public enum CommonErrorCode implements ResultCode {
/**
* 錯誤請求
*/
INVALID_REQUEST(false, CommonErrorConstant.InvalidRequest, "Invalid request, for reason: "),
/**
* 參數(shù)驗證錯誤
*/
INVALID_ARGUMENT(false, CommonErrorConstant.InvalidArgument, "Validation failed for argument "),
/**
* 未找到資源
*/
NOT_FOUND(false, CommonErrorConstant.NotFound, "Resource not found."),
/**
* 未知錯誤
*/
UNKNOWN_ERROR(false, CommonErrorConstant.UnknownError, "Unknown server internal error.");
CommonErrorCode(Boolean success, String code, String message) {
this.success = success;
this.code = code;
this.message = message;
}
/**
* 響應(yīng)是否成功
*/
private Boolean success;
/**
* 響應(yīng)狀態(tài)碼
*/
private String code;
/**
* 響應(yīng)信息
*/
private String message;
@Override
public String getCode() {
return code;
}
@Override
public String getMessage() {
return message;
}
@Override
public boolean getSuccess() {
return success;
}
}
正常請求
錯誤請求
-
調(diào)整后的業(yè)務(wù)異常
調(diào)整未知錯誤異常
對應(yīng)代碼已經(jīng)上傳更新github
在留一下一個思考問題喝噪,如果接口錯誤需要國際化應(yīng)該如何實現(xiàn)享完?
如果你覺得對您有幫助關(guān)注公眾號霸琴,程序員三時 我會給大家不定期分享熱門技術(shù)雄家,做開源項目,技術(shù)交流旺聚,面試织阳,學(xué)習(xí),分享自己入行多年一些感受和經(jīng)驗