在spring Rest Controller中,ResponseEntity.ok与直接发送响应之间有什么区别。不管怎样,如果两种情况下的反应都成功,我会得到200。
例如:-ResponseEntity.ok(列表(或发送仅发送列表
使用ResponseEntity,您可以对响应对象进行更细粒度的控制,例如,您可以设置额外的头或自定义返回代码。
如果您只是用list或ResponseEntity.ok(list(进行响应,则没有区别。
使用ResponseEntity
作为返回类型的优点是根据可用数据发送不同的状态代码
例如,您只有返回类型List<String>
,那么HTTP响应状态代码将始终为200,并且您将无法发送任何其他状态代码
public List<String> getResponse() {
}
但如果你有ResponseEntity<List<String>>
作为返回类型,你可以发送所需的状态代码和适当的数据
public List<String> getResponse() {
ResponseEntity.status(HttStatus.ACCEPTED).body(list)
ResponseEntity.status(HttStatus.NOT_FOUND).build()
}
当一个端点成功返回时,Spring会提供一个HTTP 200(OK(响应。如果端点抛出异常,Spring将查找一个异常处理程序,该异常处理程序将告诉使用哪个HTTP状态。这意味着只要你的响应发送成功,状态总是200。但如果你想自定义响应,ResponseEntity更灵活。https://www.baeldung.com/spring-response-entity