我有以下问题。我发现每当我想操纵从 Controller 返回的 HTTP 响应时,我都会在 Spring 的 RestController 中使用 ResponseEntity。
现在假设此响应的结果实际上取决于下面的业务层发生的情况。假设该层进行了一个 http 调用,如果正确,我将转发回正面消息,而不是转发负面消息。
我的 Controller 现在收到一条消息,但最好能够分析下面发生的事情是否成功。那么,我可以从业务级别返回一个 ResponseEntity 并将其标记为 400 或 200 (取决于下面发生的情况)还是还有其他更好的做法?
最佳答案
当然可以。从技术上讲,ResponseEntity
是一个与其他任何类一样的类,您可以从任何层返回它的实例。
您应该问自己的问题是,从假设执行某些业务逻辑的方法返回该类的对象是一个好习惯吗?对我来说,这感觉不对。您引入层来分离关注点。您的域层应该完全不知道您的应用程序提供的通信协议(protocol)。
如果你设计了正确的领域层,你就会根据抛出的异常知道出了什么问题。然后您还将知道应该返回哪种 HTTP 状态。
关于java - ResponseEntity 可以在 Spring 的 Controller 之外使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536627/