package routers import ( "net/http" "git.lzcwy.cn/zhengchiliu/zt-online-game-backend/internal/middleware" v1 "git.lzcwy.cn/zhengchiliu/zt-online-game-backend/internal/routers/api/v1" "github.com/gin-gonic/gin" ) // NewRouter 构建 gin 引擎:注册中间件链与 /api/v1 路由。 func NewRouter() *gin.Engine { r := gin.New() // 中间件链:Recovery -> RequestID -> Slog -> CORS r.Use( middleware.Recovery(), middleware.RequestID(), middleware.GinSlogMiddleware(), middleware.CORS(), ) // 健康检查 r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "pong"}) }) // handler 实例 userHandler := v1.NewUserHandler() apiV1 := r.Group("/api/v1") // ===== 公开路由(无需登录) ===== { apiV1.POST("/user/wxlogin", userHandler.WxLogin) apiV1.POST("/user/refresh-token", userHandler.RefreshToken) } // ===== 鉴权路由(需登录) ===== auth := apiV1.Group("") auth.Use(middleware.JWTAuth()) { auth.GET("/user/info", userHandler.InfoGetBySelf) auth.PUT("/user/profile", userHandler.ProfileUpdate) auth.POST("/user/avatar/upload", userHandler.AvatarUpload) } return r }