# 问题描述
在前端请求后端接口时,后端返回的返回类的code为500或其他的, 而服务器返回的状态全为200。导致于前端每次都要在200中判断code。
如下图所示
# 解决方案
思路
- 使用spring ResponseEntity处理 返回的状态码与返回的信息
- 使用ResultPackageToString工具类对service层抓取返回的code
- 根据返回的code返回对应的服务器状态码与信息
代码
/**
* 添加登录用户
* @param token
* @param loginInfo
* @return
*/
@PostMapping("/manage/user/info/add")
public ResponseEntity<Result> queryUserInfo(@RequestHeader("X-Token") String token,
@RequestBody LoginInfo loginInfo){
return ResultPackageToString(client.queryUserInfo(token,loginInfo));
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 工具类
public static ResponseEntity<Result> ResultPackageToResult(Result result){
switch (result.getCode()){
case 401:
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(result);
case 404:
return ResponseEntity.notFound().build();
default:
return ResponseEntity.ok().body(result);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12