开发用户注销
1.操作sessions时当作map操作就好,登录时记录了,删用户时也要移除
补充用户校验注册逻辑
1.后台补充对比编号的校验:长度、唯一性
2.前端后端发送请求字段名要一致
后端优化
- 建议先把功能完成再具体优化
1.通用返回对象
目的:给对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败
{
"name": "yupi" //虽然前端有状态码,但是后端要写去区分报错原因
}
➡️
{
"code": 0 //业务状态码
"data": {
"name": "yupi"
},
"message": "ok"
//desgription
}
a.common包--公共的东西
b.弄一个工具类,帮我们new相应对象
2.封装全局异常处理
把return的-1改掉
自定义错误码
返回正常和错误响应
- 把所有的错误在一个地方处理,定义东西捕获所有异常并且返回ResultUtils.error
- 在造语法糖
- 1.定义业务异常处理类(相对于java的异常类,支持更多字段 自定义构造函数,更灵活/快捷的设置字段); 2.编写全局异常处理器 ( 捕获代码中所有的异常,集中处理,让前端得到更详细的业务报错/信息, 同时屏蔽掉项目框架本身的异常(不暴露服务器内部状态) ),不把http状态码返回给前端;在类前加上AOP处理 记录日志集中处理
@ExceptionHandler(BusinessException.class)//这个注解表示只捕获这个异常
@Slf4j //注解打日志
@ExceptionHandler(BusinessException.class)
public BaseResponse<?> businessExceptionHandler(BusinessException e) {
log.error("businessException: " + e.getMessage(), e);
return ResultUtils.error(e.getCode(), e.getMessage(), e.getDescription());
}
SUCCESS(0, "ok", ""),
PARAMS_ERROR(40000, "请求参数错误", ""),
NULL_ERROR(40001, "请求数据为空", ""),
NOT_LOGIN(40100, "未登录", ""),
NO_AUTH(40101, "无权限", ""),
SYSTEM_ERROR(50000, "系统内部异常", "");
3.全局请求日志和登录校验