实现一个用于检索特定用户所有帖子的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"  
}  

标签: spring, Spring教程, Spring语言学习, Spring框架, Spring框架教程, Spring框架高级教程, spring boot, spring boot入门教程, spring boot学习教程, spring boot下载, spring boot框架入门, spring boot面试题, spring boot笔试题, spring boot学习指南, spring boot技术