【发布时间】:2018-09-15 08:27:54
【问题描述】:
我的应用程序基于带有一些 REST 端点的 Spring Boot。下面的 return 语句有什么区别吗?
return new ResponseEntity<MyBean>(myBean, HttpStatus.OK)return myBean;
是否有任何最佳实践指南或任何技术差异?
【问题讨论】:
标签: rest spring-boot
我的应用程序基于带有一些 REST 端点的 Spring Boot。下面的 return 语句有什么区别吗?
return new ResponseEntity<MyBean>(myBean, HttpStatus.OK)
return myBean;
是否有任何最佳实践指南或任何技术差异?
【问题讨论】:
标签: rest spring-boot
ResponseEntity<T> 代表整个 HTTP 响应。除了 body,它的 API 还允许您为响应设置 headers 和 状态码。
只返回一个 bean 也可以,但不会给您太大的灵活性:以后如果需要在响应中添加标头或修改状态码,例如,您需要更改方法返回类型。
有关返回值的更多详细信息,请参阅 Spring MVC documentation。
【讨论】:
返回 ResponseEntity 可以让您更好地控制 HTTP 响应的生成方式,尤其是在涉及 HTTP 状态代码和其他标头时。
您可以使用HttpStatus.CREATED 或特定错误代码轻松创建响应来定制您的 API。
如果您对 HTTP 200 和 POJO 的序列化版本没问题,只需返回 POJO 即可。
如果您在设计 API 时想要更多控制,请使用 ResponseEntity。
【讨论】: