60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | 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路由注册完成") | |||
|  | } |