对Feign返回服务器状态码的处理

对Feign返回服务器状态码的处理

最后修改时间:7 months ago

# 问题描述

在前端请求后端接口时,后端返回的返回类的code为500或其他的, 而服务器返回的状态全为200。导致于前端每次都要在200中判断code。

如下图所示 java-server-1620868011888

# 解决方案

思路

  1. 使用spring ResponseEntity处理 返回的状态码与返回的信息
  2. 使用ResultPackageToString工具类对service层抓取返回的code
  3. 根据返回的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

# 工具类

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
- 全文完 -

留下一条留言?
默认颜色

主题颜色

标准颜色

更多颜色...