基于 Go-Zero 框架的高性能博客系统后端 API,采用微服务架构和统一模块管理。
heimdall-api/
├── go.mod # 统一的模块定义文件
├── admin-api/ # 管理服务 (端口: 8080)
│ └── admin/
├── public-api/ # 公开服务 (端口: 8081)
│ └── public/
├── common/ # 共享代码包
│ ├── dao/ # 数据访问层
│ ├── model/ # 数据模型
│ ├── constants/ # 业务常量
│ ├── client/ # 第三方客户端
│ ├── errors/ # 错误定义
│ └── utils/ # 工具函数
├── design/ # 设计文档
└── docs/ # 开发文档
- 🚀 高性能: 基于 Go-Zero 框架,支持高并发
- 🔐 JWT 认证: 安全的令牌认证,支持刷新令牌
- 📝 内容管理: 文章、页面、标签、评论的完整管理
- 👥 用户管理: 基于角色的访问控制 (Owner, Admin, Editor, Author)
- 🔍 高级搜索: MongoDB 全文搜索支持
- 📊 数据分析: 浏览量统计、阅读时间计算
- 🛡️ 安全防护: 登录限制、密码加密、JWT 黑名单
- 📤 文件上传: 图片和文件上传,支持验证
- 🔄 批量操作: 文章、标签、评论的批量删除和状态更新
- 📈 评论统计: 实时评论数据统计和管理
- Go 1.19+
- MongoDB 5.0+
- Redis 6.0+
go mod tidy使用Makefile (推荐):
# 查看所有可用命令
make help
# 构建所有服务
make build
# 启动管理服务 (端口: 8080)
make admin
# 启动公开服务 (端口: 8081)
make public
# 运行测试
make test直接使用Go命令:
# 启动管理服务 (端口: 8080)
go run ./admin-api/admin
# 启动公开服务 (端口: 8081)
go run ./public-api/public
# 运行测试
go test ./...- 端口: 8080
- 用户: 博客管理员、编辑、作者
- 功能: 用户管理、内容管理、评论审核、系统设置、媒体管理
- 端口: 8081
- 用户: 博客访问者、搜索引擎、第三方应用
- 功能: 内容展示、内容搜索、评论系统、RSS订阅、SEO优化
- 性质: 被两个服务共同引用的基础代码
- 内容: 数据模型、数据访问、缓存、安全、工具函数等
POST /api/v1/admin/auth/login- 用户登录POST /api/v1/admin/auth/logout- 用户登出POST /api/v1/admin/auth/refresh- 刷新令牌GET /api/v1/admin/auth/profile- 获取当前用户信息POST /api/v1/admin/auth/change-password- 修改密码
GET /api/v1/admin/posts- 获取文章列表POST /api/v1/admin/posts- 创建文章GET /api/v1/admin/posts/:id- 获取文章详情PUT /api/v1/admin/posts/:id- 更新文章DELETE /api/v1/admin/posts/:id- 删除文章POST /api/v1/admin/posts/:id/publish- 发布文章POST /api/v1/admin/posts/:id/unpublish- 取消发布文章DELETE /api/v1/admin/posts/batch- 批量删除文章PATCH /api/v1/admin/posts/batch/status- 批量更新文章状态
GET /api/v1/admin/tags- 获取标签列表POST /api/v1/admin/tags- 创建标签GET /api/v1/admin/tags/:id- 获取标签详情PUT /api/v1/admin/tags/:id- 更新标签DELETE /api/v1/admin/tags/:id- 删除标签GET /api/v1/admin/tags/all- 获取所有标签(不分页)GET /api/v1/admin/tags/search- 搜索标签DELETE /api/v1/admin/tags/batch- 批量删除标签
GET /api/v1/admin/comments- 获取评论列表GET /api/v1/admin/comments/:id- 获取评论详情PUT /api/v1/admin/comments/:id- 更新评论DELETE /api/v1/admin/comments/:id- 删除评论PUT /api/v1/admin/comments/:id/approve- 审核通过评论PUT /api/v1/admin/comments/:id/reject- 拒绝评论PUT /api/v1/admin/comments/:id/spam- 标记垃圾评论POST /api/v1/admin/comments/:id/reply- 回复评论GET /api/v1/admin/comments/stats- 获取评论统计PATCH /api/v1/admin/comments/batch/status- 批量更新评论状态
POST /api/v1/admin/upload/image- 上传图片POST /api/v1/admin/upload/file- 上传文件
GET /api/v1/public/posts- 获取公开文章列表GET /api/v1/public/posts/:slug- 通过 slug 获取文章详情GET /api/v1/public/tags- 获取标签列表GET /api/v1/public/pages/:slug- 通过 slug 获取页面详情
- 📖 Swagger API 文档 - 完整的REST API接口文档
- 🌐 在线浏览 - 可视化API文档界面
# 生成所有Swagger文档
make swagger
# 只生成管理后台API文档
make swagger-admin
# 只生成公开API文档
make swagger-public- 后端框架: Go-Zero
- 数据库: MongoDB
- 缓存: Redis
- 认证: JWT
- 测试: GoConvey + Mockey
本项目采用 MIT 许可证。