设计思路
原生状态100 - 599保留不变,可用600+的三位数进行状态标识
实践思路
先将整个系统的抽象状态尽可能提取(如:登录相关,注册相关),然后才确定具体(状态码),基本思路:抽象到具体
具体化思路
预先感知未来使用情况,对状态类型定义区间,区间确定后对状态码进行实现(如:600,601)
状态来源
控制层:直接将状态封装到返回对象中
服务层:抛自定义异常,同时把状态封装在异常中,控制层的异常拦截器拦截异常,获取状态,将状态封装到返回对象中
例子:
以下常见状态请用系统状态码HttpStatus
200 成功
400 请求参数有误
401 没有权限
403 禁止访问
404 页面未找到
500 服务器错误
/**
* @description 以下为自定义状态码
* @date 2019/11/23
* 600 ++
* 分类区间为20单位,如需扩展分类需写为(例:600 - 619 && 700 - 719)
* 命名规范:ERROR + 类型名称 + 状态
*/
//TODO 600 - 609 登录相关
//密码错误
public static final int ERROR_LOGIN_PASSWORD = 600;
//用户不存在
public static final int ERROR_LOGIN_USER_NOT_EXIST = 601;
//未登陆
public static final int ERROR_LOGIN_NOT_YET = 602;
//TODO 610 - 619 注册相关
//用户已存在
public static final int ERROR_SIGNIN_USER_DUPLICATE = 610;