在java代码中,接口返回有各种各样的状态,比如400 401 200 500 403等常见的http状态码,也有我们自定义的很多业务状态码。如果系统比较复杂,制定一套完整的标准的状态码是非常有必要的,这样比较方面BUG排查。
在Java中,枚举类型是一种特殊的类,它包含了一组常量。Java 枚举是一种数据类型,它包含固定数量的常量。枚举在Java中被视为数据类型,你可以使用它们来创建枚举类型的变量,然后使用那些变量等。
如我们可以对状态码进行规划
10001-19999 定义为参数相关的状态码
20001-29999 定义为用户模块相关的状态码
。。。。。
等等
public enum ResponseCode {
/* 公共状态码 */
SUCCESS(200, "成功"),
FAILED(400, "失败"),
UNAUTHORIZED(401, "签名错误"),
NOT_FOUND(404, "此接口不存在"),
INTERNAL_SERVER_ERROR(500, "系统繁忙,请稍后再试"),
/* 参数错误:10001-19999 */
PARAM_IS_INVALID(10001, "参数无效"),
PARAM_IS_BLANK(10002, "参数为空"),
PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
PARAM_NOT_COMPLETE(10004, "参数缺失"),
/* 用户错误:20001-29999*/
USER_NOT_LOGGED_IN(20001, "用户未登录"),
USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
USER_NOT_EXIST(20004, "用户不存在"),
USER_HAS_EXISTED(20005, "用户已存在"),
LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),
//微信授权 错误码
WEIXIN_ENCRYPT_ERROR(30001,"企业微信授权解密失败"),
/*权限相关:40001-49999 */
NO_PERMISS(40001,"无权限访问"),
IS_LIMIT_ACC(40002,"访问过于频繁限制访问"),
/* 业务错误:50001-59999 */
WX_QRCODE_NULL(50001,"微信二维码获取内容不可用"),
/* 业务错误:60001-69999 */
XSS_CODE_ERROR(60001,"存在xss 恶意攻击脚本");
private Integer code;
private String message;
ResponseCode(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
HTTP状态码是用于表示HTTP请求的处理结果的数字代码。HTTP状态码由三部分组成:状态码的第一个数字表示响应的类别,中间的数字表示具体状态,最后一个数字提供更详细的信息。
常见的HTTP状态码包括:
HTTP状态码分为5类,每一类有不同的数字和含义。