package server import ( "github.com/Wei-Shaw/sub2api/internal/config" "github.com/Wei-Shaw/sub2api/internal/handler" middleware2 "github.com/Wei-Shaw/sub2api/internal/server/middleware" "github.com/Wei-Shaw/sub2api/internal/server/routes" "github.com/Wei-Shaw/sub2api/internal/service" "github.com/Wei-Shaw/sub2api/internal/web" "github.com/gin-gonic/gin" ) // SetupRouter 配置路由器中间件和路由 func SetupRouter( r *gin.Engine, handlers *handler.Handlers, jwtAuth middleware2.JWTAuthMiddleware, adminAuth middleware2.AdminAuthMiddleware, apiKeyAuth middleware2.ApiKeyAuthMiddleware, apiKeyService *service.ApiKeyService, subscriptionService *service.SubscriptionService, cfg *config.Config, ) *gin.Engine { // 应用中间件 r.Use(middleware2.Logger()) r.Use(middleware2.CORS()) // Serve embedded frontend if available if web.HasEmbeddedFrontend() { r.Use(web.ServeEmbeddedFrontend()) } // 注册路由 registerRoutes(r, handlers, jwtAuth, adminAuth, apiKeyAuth, apiKeyService, subscriptionService, cfg) return r } // registerRoutes 注册所有 HTTP 路由 func registerRoutes( r *gin.Engine, h *handler.Handlers, jwtAuth middleware2.JWTAuthMiddleware, adminAuth middleware2.AdminAuthMiddleware, apiKeyAuth middleware2.ApiKeyAuthMiddleware, apiKeyService *service.ApiKeyService, subscriptionService *service.SubscriptionService, cfg *config.Config, ) { // 通用路由(健康检查、状态等) routes.RegisterCommonRoutes(r) // API v1 v1 := r.Group("/api/v1") // 注册各模块路由 routes.RegisterAuthRoutes(v1, h, jwtAuth) routes.RegisterUserRoutes(v1, h, jwtAuth) routes.RegisterAdminRoutes(v1, h, adminAuth) routes.RegisterGatewayRoutes(r, h, apiKeyAuth, apiKeyService, subscriptionService, cfg) }