package main import ( "fmt" "github.com/gin-gonic/gin" "go.uber.org/zap" ) func main() { //加载配置 cfg, err := LoadConfig() if err != nil { panic(err) } //初始化日志 err = InitLogger(cfg.App.Env) if err != nil { panic(err) } defer Logger.Sync() //初始化数据库 err = InitDB(cfg) if err != nil { Logger.Fatal("数据库初始化失败", zap.Error(err)) } //创建Gin应用 r := gin.Default() //中间件 r.Use(LoggingMiddleware()) r.Use(CORSMiddleware()) // 公开路由 public := r.Group("/api") { public.GET("/health", HealthCheck) public.POST("/register", Register(cfg)) public.POST("/login", Login(cfg)) } // 受保护的路由 protected := r.Group("/api") protected.Use(AuthMiddleware(cfg)) { protected.GET("/profile", GetProfile) protected.PUT("/profile", UpdateProfile) } // 启动服务器 addr := fmt.Sprintf(":%d", cfg.App.Port) Logger.Info("Server starting", zap.String("app", cfg.App.Name), zap.Int("port", cfg.App.Port), zap.String("env", cfg.App.Env), ) if err = r.Run(addr); err != nil { Logger.Fatal("Server error", zap.Error(err)) } }