一个简洁的博客后端,用于前端同学对接练习
- Go: 1.25.0
- Web框架: Gin
- 数据库: SQLite3
- ORM: GORM
- 认证: JWT (golang-jwt/jwt/v5)
- 密码加密: bcrypt
- 配置管理: Viper
test-blog/
├── config/ # 配置管理
│ └── config.go
├── database/ # 数据库连接
│ └── database.go
├── handlers/ # 请求处理器
│ ├── user.go
│ └── article.go
├── middleware/ # 中间件
│ ├── auth.go # JWT认证
│ ├── cors.go # CORS
│ └── logger.go # 日志
├── models/ # 数据模型
│ ├── user.go
│ └── article.go
├── router/ # 路由配置
│ └── router.go
├── services/ # 业务逻辑层
│ ├── user.go
│ └── article.go
├── utils/ # 工具函数
│ ├── jwt.go
│ ├── password.go
│ └── response.go
├── main.go # 程序入口
├── config.yaml # 配置文件
└── blog.db # SQLite数据库(运行时生成)
cd test-bloggo mod tidy复制config.example.yaml到config.yaml,修改一下配置:
server:
port: "8080" # 服务端口
mode: "debug" # 运行模式
database:
path: "./blog.db" # 数据库路径
jwt:
secret: "test-blog-secret-key-2025" # JWT密钥
expire: 168 # Token过期时间(小时)
cors:
allow_origins:
- "*" # 允许的来源go run main.go- 用户注册
- 用户登录
- 根据token获取用户信息
- 获取所有文章列表(按时间倒序)
- 获取指定用户的文章列表
- 创建新文章
- 更新文章内容
- 删除文章
- 在
handlers/中创建处理函数 - 在
services/中实现业务逻辑 - 在
router/router.go中注册路由 - 需要认证的接口放在
auth路由组下
ARCHITECTURE.md- 详细的架构设计文档SYSTEM_DESIGN.md- 系统设计可视化图表