基本介绍
博客系统中,用户浏览文章时可以在文章下方发表自己的观点,与博主或其他用户进行互动,也可以为喜欢的文章点赞。下面我们一起分析一下 Halo 项目中评论和点赞功能的实现过程。
发表评论
评论可以是对文章的评论,对页面的评论,也可以是对评论的评论(通常称为回复),因此项目中需要对评论的类别进行划分。评论的实体类 BaseComment 中设置了几个重要的属性:type、postId、parentId。其中 type 用于区分文章和页面,type 为 0 表示对文章的评论,为 1 表示对页面的评论;postId 用于指定评论属于哪一篇文章或页面;parentId 表示当前评论的 "父评论",如果当前评论是对某个 "父评论" 的回复,那么 parentId 为该 "父评论" 的 id,如果评论文章,那么 parentId 为 0。
进入博客首页,点开一篇文章,在下方发表评论:
点击 "评论" 按钮后,触发 api/content/posts/comments
请求:
该请求由 PostController 中的 comment 方法处理:
```java
@PostMapping("comments")