feat: 实现后端和管理后台基础架构
## 后端架构 (Go + Gin + GORM) - ✅ 完整的分层架构 (API/Service/Repository) - ✅ PostgreSQL数据库设计和迁移脚本 - ✅ JWT认证系统和权限控制 - ✅ 用户、照片、分类、标签等核心模型 - ✅ 中间件系统 (认证、CORS、日志) - ✅ 配置管理和环境变量支持 - ✅ 结构化日志和错误处理 - ✅ Makefile构建和部署脚本 ## 管理后台架构 (React + TypeScript) - ✅ Vite + React 18 + TypeScript现代化架构 - ✅ 路由系统和状态管理 (Zustand + TanStack Query) - ✅ 基于Radix UI的组件库基础 - ✅ 认证流程和权限控制 - ✅ 响应式设计和主题系统 ## 数据库设计 - ✅ 用户表 (角色权限、认证信息) - ✅ 照片表 (元数据、EXIF、状态管理) - ✅ 分类表 (层级结构、封面图片) - ✅ 标签表 (使用统计、标签云) - ✅ 关联表 (照片-标签多对多) ## 技术特点 - 🚀 高性能: Gin框架 + GORM ORM - 🔐 安全: JWT认证 + 密码加密 + 权限控制 - 📊 监控: 结构化日志 + 健康检查 - 🎨 现代化: React 18 + TypeScript + Vite - 📱 响应式: Tailwind CSS + Radix UI 参考文档: docs/development/saved-docs/
This commit is contained in:
44
backend/internal/api/routes/routes.go
Normal file
44
backend/internal/api/routes/routes.go
Normal file
@ -0,0 +1,44 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"photography-backend/internal/api/handlers"
|
||||
"photography-backend/internal/api/middleware"
|
||||
)
|
||||
|
||||
// Handlers 处理器集合
|
||||
type Handlers struct {
|
||||
Auth *handlers.AuthHandler
|
||||
}
|
||||
|
||||
// SetupRoutes 设置路由
|
||||
func SetupRoutes(r *gin.Engine, handlers *Handlers, authMiddleware *middleware.AuthMiddleware) {
|
||||
// API v1路由组
|
||||
v1 := r.Group("/api/v1")
|
||||
|
||||
// 公开路由
|
||||
public := v1.Group("/auth")
|
||||
{
|
||||
public.POST("/login", handlers.Auth.Login)
|
||||
public.POST("/register", handlers.Auth.Register)
|
||||
public.POST("/refresh", handlers.Auth.RefreshToken)
|
||||
}
|
||||
|
||||
// 需要认证的路由
|
||||
protected := v1.Group("/")
|
||||
protected.Use(authMiddleware.RequireAuth())
|
||||
{
|
||||
// 用户资料
|
||||
protected.GET("/auth/profile", handlers.Auth.GetProfile)
|
||||
protected.PUT("/auth/password", handlers.Auth.UpdatePassword)
|
||||
protected.POST("/auth/logout", handlers.Auth.Logout)
|
||||
}
|
||||
|
||||
// 管理员路由
|
||||
admin := v1.Group("/admin")
|
||||
admin.Use(authMiddleware.RequireAuth())
|
||||
admin.Use(authMiddleware.RequireAdmin())
|
||||
{
|
||||
// 将在后续添加管理员相关路由
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user