视频加载失败

Spring Boot + MySQL:为个人博客设计一套内容 API

715 字
3 分钟
Spring Boot + MySQL:为个人博客设计一套内容 API
Spring Boot + MySQL:为个人博客设计一套内容 API

为个人博客设计内容 API

个人博客的接口不复杂,但它是一个很好的练习场:既要考虑前台读取,又要考虑后台写入、审核和权限。

接口分层

我把接口分成两组:

  • /api/portal/**:匿名可读,只返回已发布内容;
  • /api/content/**:登录后可写,按权限码校验。

两组接口共用同一套 Service 与 Mapper,差别只在查询条件与字段裁剪。这样既避免复制 SQL,也能保证前后台看到的是同一份数据。

统一返回结构

项目沿用了脚手架里的 R<T>:

{
  "code": 200,
  "message": "操作成功",
  "data": { "rows": [], "total": 0 },
  "traceId": "8f2c1a"
}

前台请求封装在 code !== 200 时抛出错误,页面只处理业务数据。追踪 ID 在排查线上问题时很有用。

评论与审核

评论默认进入待审核状态,只有 status = 1 的记录会返回给前台。审核通过或删除评论后,重新计算目标内容的评论数,避免列表和详情页数字不一致。

UPDATE blog_post
SET comment_count = (
  SELECT COUNT(*) FROM blog_comment
  WHERE target_type = "post" AND target_id = #{id} AND status = 1
)
WHERE id = #{id}

搜索怎么做

数据量不大时,LIKE 足够。标题、摘要和正文都可以匹配,再按发布时间排序。等文章上千篇,再考虑全文索引或独立的搜索引擎。

一点经验

不要为了“以后可能用到”而提前抽象。把文章、分类、标签、评论这四件事做扎实,比引入一套复杂的内容模型更有价值。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Spring Boot + MySQL:为个人博客设计一套内容 API
http://dzs.asia/posts/blog-content-api/
作者
Duan
发布于
2026-10-24
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Duan
Hello World!
公告
博客已接入 Spring Boot + MySQL 后台,文章、动态、相册和评论都可以在线维护。
分类
标签
最新动态
站点统计
文章
6
分类
4
标签
10
总字数
0
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly vunknown
文章许可
CC BY-NC-SA 4.0

当前页面没有目录

文章目录

当前页面没有目录