Springboot web 是否应该封装通用返回类

新手上路,请多包涵

使用springboot进行web开发,是否应该定义一个通用返回类,类似下面这样的,将接口的返回数据和处理信息都封装起来返回。

public class ResponseEntity<T>{
    private int code;
    private T data;
    private String msg;
    ...
}

再加上 @ControllerAdvice 注解,对于所有的异常处理返回也都使用通用类返回,这样的话接口请求的http响应就一直是 200 了

我使用这种通用返回类进行编写的时候,发现这样会影响快速的找错。
如一个页面有十几个接口请求,使用这种模式编写的话每个请求响应状态都是200,无法一眼就看出500爆红的接口,需要对每个请求的response进行查看才能找出错误接口。

我的描述可能有些混乱,总而言之我向请问下各位,在你们的实际开发中,是否会使用通用返回类进行封装? 是否应该将@ControllerAdvice 中异常处理都使用通用返回类返回?

阅读 2k
2 个回答

用@ExceptionHandler啊

@ExceptionHandler(value = HttpRequestMethodNotSupportedException.class)
@ResponseBody
public ApiResponse httpRequestMethodNotSupportedExceptionHandler(HttpRequestMethodNotSupportedException ex){
    return ApiResponse.build().paramError(String.format("当前请求方法:[%s]不支持,仅支持:%s", ex.getMethod(), Arrays.toString(ex.getSupportedMethods())));
}

异常处理的代码里设置一下返回的status不是200而是4xx5xx就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题