返回ResponseEntity与返回POJO

时间:2018-04-05 13:31:08

标签: rest spring-boot

我的应用程序基于带有一些REST端点的Spring Boot。以下退货声明之间有什么区别吗?

  • return new ResponseEntity<MyBean>(myBean, HttpStatus.OK)

  • return myBean;

是否有最佳做法指南或技术差异?

2 个答案:

答案 0 :(得分:3)

ResponseEntity<T>代表整个HTTP响应。除了 body 之外,它的API还允许您将标题状态代码设置为响应。

只返回一个bean很好,但没有给你很大的灵活性:将来,如果你需要在响应中添加一个标题或修改状态代码,例如,你需要更改方法返回类型。

有关返回值的更多详细信息,请参阅Spring MVC documentation

答案 1 :(得分:0)

返回ResponseEntity可让您更好地控制HTTP响应的生成方式,尤其是涉及HTTP状态代码和其他标头时。

您可以使用HttpStatus.CREATED或特定错误代码轻松创建响应,以定制您的API。

如果您对使用HTTP 200和POJO的序列化版本没问题,只需返回POJO即可。

如果您在设计API时需要更多控制权,请使用ResponseEntity。