Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.0k views
in Technique[技术] by (71.8m points)

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

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

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

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

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

用@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())));
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...