refactor: 重构后端架构为 go-zero 框架,优化项目结构
主要变更: - 采用 go-zero 框架替代 Gin,提升开发效率 - 重构项目结构,API 文件模块化组织 - 将 model 移至 api/internal/model 目录 - 移除 common 包,改为标准 pkg 目录结构 - 实现统一的仓储模式,支持配置驱动数据库切换 - 简化测试策略,专注 API 集成测试 - 更新 CLAUDE.md 文档,提供详细的开发指导 技术栈更新: - 框架: Gin → go-zero v1.6.0+ - 代码生成: 引入 goctl 工具 - 架构模式: 四层架构 → go-zero 三层架构 (Handler→Logic→Model) - 项目布局: 遵循 Go 社区标准和 go-zero 最佳实践
This commit is contained in:
@ -14,6 +14,7 @@ import (
|
||||
"go.uber.org/zap"
|
||||
|
||||
"photography-backend/internal/config"
|
||||
"photography-backend/internal/database"
|
||||
"photography-backend/internal/repository/postgres"
|
||||
"photography-backend/internal/service"
|
||||
"photography-backend/internal/service/auth"
|
||||
@ -38,7 +39,7 @@ func main() {
|
||||
defer zapLogger.Sync()
|
||||
|
||||
// 初始化数据库
|
||||
db, err := postgres.NewDatabase(&cfg.Database)
|
||||
db, err := database.New(cfg)
|
||||
if err != nil {
|
||||
zapLogger.Fatal("Failed to connect to database", zap.Error(err))
|
||||
}
|
||||
@ -49,11 +50,16 @@ func main() {
|
||||
zapLogger.Fatal("Failed to migrate database", zap.Error(err))
|
||||
}
|
||||
|
||||
// 填充种子数据
|
||||
if err := db.Seed(); err != nil {
|
||||
zapLogger.Warn("Failed to seed database", zap.Error(err))
|
||||
}
|
||||
|
||||
// 初始化仓库
|
||||
userRepo := postgres.NewUserRepository(db.DB)
|
||||
photoRepo := postgres.NewPhotoRepository(db.DB)
|
||||
categoryRepo := postgres.NewCategoryRepository(db.DB)
|
||||
tagRepo := postgres.NewTagRepository(db.DB)
|
||||
userRepo := postgres.NewUserRepository(db.GetDB())
|
||||
photoRepo := postgres.NewPhotoRepository(db.GetDB())
|
||||
categoryRepo := postgres.NewCategoryRepository(db.GetDB())
|
||||
tagRepo := postgres.NewTagRepository(db.GetDB())
|
||||
|
||||
// 初始化服务
|
||||
jwtService := auth.NewJWTService(&cfg.JWT)
|
||||
@ -98,12 +104,12 @@ func main() {
|
||||
|
||||
// 设置路由
|
||||
routes.SetupRoutes(r, &routes.Handlers{
|
||||
Auth: authHandler,
|
||||
Photo: photoHandler,
|
||||
Category: categoryHandler,
|
||||
Tag: tagHandler,
|
||||
User: userHandler,
|
||||
}, authMiddleware)
|
||||
AuthHandler: authHandler,
|
||||
PhotoHandler: photoHandler,
|
||||
CategoryHandler: categoryHandler,
|
||||
TagHandler: tagHandler,
|
||||
UserHandler: userHandler,
|
||||
}, authMiddleware, zapLogger)
|
||||
|
||||
// 创建HTTP服务器
|
||||
server := &http.Server{
|
||||
|
||||
Reference in New Issue
Block a user