SpringBoot教程-实现一个用于检索特定用户所有帖子的GET服务。
实现一个用于检索特定用户所有帖子的GET服务。
步骤1: 打开UserJPAResource.java文件,在URI "/jpa/users/{id}/posts"上创建映射。
@GetMapping("/jpa/users/{id}/posts")
public List<Post> retriveAllUsers(@PathVariable int id)
{
Optional<User> userOptional= userRepository.findById(id);
if(!userOptional.isPresent())
{
throw new UserNotFoundException("id: "+ id);
}
return userOptional.get().getPosts();
}
步骤2: 由于响应中不需要显示用户详细信息,所以我们将在Post.java文件中的User字段上面添加@JsonIgnore注释。
步骤3: 打开Postman,使用URI http://localhost:8080/jpa/users/{id}/posts
发送一个GET请求。在我们的情况下,我们指定了用户ID 101。它会显示用户101创建的所有帖子。
[
{
"id": 111,
"description": "first post"
},
{
"id": 112,
"description": "second post"
}
]
现在,我们发送一个GET请求,针对尚未创建任何帖子的用户,比如用户105。用户105尚未创建任何帖子,所以我们将在URI http://localhost:8080/jpa/users/105/posts
中指定此用户ID。
它显示一对空方括号。方括号表示用户存在,但用户尚未创建任何帖子。
再次发送一个GET请求,针对数据库中不存在的用户,比如110。它会显示状态:404 Not Found,带有以下详细信息:
{
"timesatmp": "2019-10-05T05:31:09.407+0000",
"message": "id-110",
"details": "uri=/jpa/users/110/posts"
}