我是 REST 新手,正在使用用户和文章制作简单的 REST 应用程序。我想知道下面两个示例有什么区别:
@GetMapping("/user/{id}")
public User getUserById(PathVariable("id") String id) {
.....
return userService.getUserById();
}
Run Code Online (Sandbox Code Playgroud)
和
@GetMapping("/user/{id}")
public ResponseEntity<User> getUserById(PathVariable("id") String id) {
.....
return new ResponseEntity<> ....
}
Run Code Online (Sandbox Code Playgroud)
使用哪一个更好?他们两者之间的主要区别是什么?
ResponseEntity 包含作为响应返回的整个 HTTP 响应,这使得可以灵活地添加标头、更改状态代码并对响应执行类似的操作。
另一种方式是像例子中返回用户一样直接发送PJO类,return ResponseEntity.ok(user)这与成功向用户响应用户详细信息有些类似。但如果直接返回 PJO,则无法更改标头、状态代码。
当您需要更改标头或需要根据结果更改状态时,最好使用 ResponseEntity 而不是 PJO。
例如:没有数据时显示未找到即可return ResponseEntity.status(404).body(<-body->)。
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |