作为一个Spring Boot noob,我只知道在控制器类中,它的公共函数可以返回模型对象和ResponseEntity对象。像
这样的东西public List<Book> getBooks() {}
或
public ResponseEntity<Book> getBooks() {}
但是我的问题是,当有多种选择时哪个更好?
答案 0 :(得分:1)
基本上,如果您使用ResponseEntity,除了对象本身的内容外,您还可以控制HTTP响应状态。
public ResponseEntity<Object> getObject() {
return new ResponseEntity<Object>(object, Httpstatus.OK);
}
例如,如果您需要在执行任何操作之前验证请求中的某些数据,并且您希望让您的客户端知道通过HTTP状态代码发生的事情,您可以在不同选项之间进行选择。
HttpStatus.CONFLICT
HttpStatus.CREATED
您可以在这里查看不同的状态代码:
答案 1 :(得分:0)
只是为了了解@lbpeppers提到的内容。使用ResponseEntity有许多优点
1.如果状态代码类似于400或404,客户端无需查看消息正文,这非常有用
2.在某些情况下,客户对身体不感兴趣。它所需要的只是操作的状态
3. HttpStatus calss中有很多方便的方法,如is1xxInformational
,is2xxSuccessful
,is3xxRedirection
,is4xxClientError
,is5xxServerError
,可以像
response.getStatusCode().is2xxSuccessful()