我已经使用Spring MVC 4(或Spring- Boot)编写了简单的rest应用程序。在控制器内,我已返回ResponseEntity。但是在某些情况下,我想提供成功的JSON,如果有验证错误,我想提供错误的JSON。当前,成功和错误响应完全不同,因此我为错误和成功创建了2个类。ResponseEntity<Success>如果内部逻辑正常,我想在控制器内返回。否则我想回来ResponseEntity<Error>。有没有办法做到这一点。
ResponseEntity
ResponseEntity<Success>
ResponseEntity<Error>
Success和Error是2类,我使用以表示成功和错误响应。
Success
Error
我建议使用Spring @ControllerAdvice处理错误。从名为“ Spring Boot错误处理”的部分开始,阅读本指南以获得良好的介绍。对于深入讨论,Spring.io博客中有一篇文章已于2018年4月更新。
@ControllerAdvice
关于其工作原理的简要概述:
@ExceptionHandler
使用这种方法,您只需要在一个地方为API中的所有端点实现控制器异常处理。这也使您的API在所有端点上具有统一的异常响应结构变得容易。这简化了客户端的异常处理。