package routes import ( "tyapi-server/internal/infrastructure/http/handlers" sharedhttp "tyapi-server/internal/shared/http" "tyapi-server/internal/shared/middleware" "go.uber.org/zap" ) // ApiRoutes API路由注册器 type ApiRoutes struct { apiHandler *handlers.ApiHandler authMiddleware *middleware.JWTAuthMiddleware domainAuthMiddleware *middleware.DomainAuthMiddleware logger *zap.Logger } // NewApiRoutes 创建API路由注册器 func NewApiRoutes( apiHandler *handlers.ApiHandler, authMiddleware *middleware.JWTAuthMiddleware, domainAuthMiddleware *middleware.DomainAuthMiddleware, logger *zap.Logger, ) *ApiRoutes { return &ApiRoutes{ apiHandler: apiHandler, authMiddleware: authMiddleware, domainAuthMiddleware: domainAuthMiddleware, logger: logger, } } // Register 注册相关路由 func (r *ApiRoutes) Register(router *sharedhttp.GinRouter) { // API路由组,需要用户认证 engine := router.GetEngine() apiGroup := engine.Group("/api/v1") { apiGroup.POST("/:api_name", r.domainAuthMiddleware.Handle(""), r.apiHandler.HandleApiCall) // 加密接口(用于前端调试) apiGroup.POST("/encrypt", r.authMiddleware.Handle(), r.apiHandler.EncryptParams) // API密钥管理接口 apiGroup.GET("/api-keys", r.authMiddleware.Handle(), r.apiHandler.GetUserApiKeys) // 白名单管理接口 apiGroup.GET("/white-list", r.authMiddleware.Handle(), r.apiHandler.GetUserWhiteList) apiGroup.POST("/white-list", r.authMiddleware.Handle(), r.apiHandler.AddWhiteListIP) apiGroup.DELETE("/white-list/:ip", r.authMiddleware.Handle(), r.apiHandler.DeleteWhiteListIP) // API调用记录接口 apiGroup.GET("/my/api-calls", r.authMiddleware.Handle(), r.apiHandler.GetUserApiCalls) } r.logger.Info("API路由注册完成") }