如果没有看后面几篇文章请先看后面几篇
SpringBoot定义优雅全局对立Restful API 响应框架
SpringBoot定义优雅全局对立Restful API 响应框架二
SpringBoot定义优雅全局对立Restful API 响应框架三
目前咱们如同仿佛解决所有问题,达到了咱们现实的成果如下
然而在业务谬误返回时候不太现实如下
没有必要返回 reuqest
和errorMsg
还有如果业务非常复杂的时候,会不会呈现错误码调配应用凌乱和反复问题这个问题应该如何防止和解决呢?
这个时候我想到 应用业务谬误常量来代替错误码,这样更加见字识意, 进一步形象谬误常量公共接口模块
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 * 定义谬误常量 代替错误码,防止业务简单错误码调配反复等问题 */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"; /** * 其余自定义业务错误码 */}
通用错误码
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: "), /** * 参数验证谬误 */ 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; } /** * 响应是否胜利 */ private Boolean success; /** * 响应状态码 */ private String code; /** * 响应信息 */ private String message; @Override public String getCode() { return code; } @Override public String getMessage() { return message; } @Override public boolean getSuccess() { return success; }}
失常申请
谬误申请
- 调整后的业务异样
- 调整未知谬误异样
对应代码曾经上传更新github
在留一下一个思考问题,如果接口谬误须要国际化应该如何实现?
如果你感觉对您有帮忙关注公众号,程序员三时 我会给大家不定期分享热门技术,做开源我的项目,技术交换,面试,学习,分享本人入行多年一些感触和教训