java - ResponseEntity 可以在 Spring 的 Controller 之外使用吗?

标签 java spring httpresponse dto

我有以下问题。我发现每当我想操纵从 Controller 返回的 HTTP 响应时,我都会在 Spring 的 RestController 中使用 ResponseEntity

现在假设此响应的结果实际上取决于下面的业务层发生的情况。假设该层进行了一个 http 调用,如果正确,我将转发回正面消息,而不是转发负面消息。

我的 Controller 现在收到一条消息,但最好能够分析下面发生的事情是否成功。那么,我可以从业务级别返回一个 ResponseEntity 并将其标记为 400 或 200 (取决于下面发生的情况)还是还有其他更好的做法?

最佳答案

当然可以。从技术上讲,ResponseEntity 是一个与其他任何类一样的类,您可以从任何层返回它的实例。

您应该问自己的问题是,从假设执行某些业务逻辑的方法返回该类的对象是一个好习惯吗?对我来说,这感觉不对。您引入层来分离关注点。您的域层应该完全不知道您的应用程序提供的通信协议(protocol)。

如果你设计了正确的领域层,你就会根据抛出的异常知道出了什么问题。然后您还将知道应该返回哪种 HTTP 状态。

关于java - ResponseEntity 可以在 Spring 的 Controller 之外使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536627/

相关文章:

java - 无法解码 SOAP 响应

java - 天文计算 : J2SE code woking, 但不在 android 中

java - 如何限制客户端连接到我的 stomp websocket 处理程序?

spring - 导入就地插件的Grails应用程序上下文

java - 无法从 Spring boot 中的 REST API 返回错误代码和消息

java - 在Java中将3个整数转换为日期变量

java - 线程 "main"java.lang.NoClassDefFoundError : (wrong name 中出现异常

spring - 如何在Spring Boot中对私有(private)/ protected RequestMapping进行AOP

android - 如何读取纯文本/字符串而不是 JSON 的响应

python - Django HttpResponse 对在线 MP3 文件