| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 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 { | 
					
						
							| 
									
										
										
										
											2025-08-27 22:19:19 +08:00
										 |  |  |  | 	apiHandler           *handlers.ApiHandler | 
					
						
							|  |  |  |  | 	authMiddleware       *middleware.JWTAuthMiddleware | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 	domainAuthMiddleware *middleware.DomainAuthMiddleware | 
					
						
							| 
									
										
										
										
											2025-08-27 22:19:19 +08:00
										 |  |  |  | 	logger               *zap.Logger | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // NewApiRoutes 创建API路由注册器 | 
					
						
							|  |  |  |  | func NewApiRoutes( | 
					
						
							|  |  |  |  | 	apiHandler *handlers.ApiHandler, | 
					
						
							|  |  |  |  | 	authMiddleware *middleware.JWTAuthMiddleware, | 
					
						
							|  |  |  |  | 	domainAuthMiddleware *middleware.DomainAuthMiddleware, | 
					
						
							|  |  |  |  | 	logger *zap.Logger, | 
					
						
							|  |  |  |  | ) *ApiRoutes { | 
					
						
							|  |  |  |  | 	return &ApiRoutes{ | 
					
						
							| 
									
										
										
										
											2025-08-27 22:19:19 +08:00
										 |  |  |  | 		apiHandler:           apiHandler, | 
					
						
							|  |  |  |  | 		authMiddleware:       authMiddleware, | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 		domainAuthMiddleware: domainAuthMiddleware, | 
					
						
							| 
									
										
										
										
											2025-08-27 22:19:19 +08:00
										 |  |  |  | 		logger:               logger, | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Register 注册相关路由 | 
					
						
							|  |  |  |  | func (r *ApiRoutes) Register(router *sharedhttp.GinRouter) { | 
					
						
							|  |  |  |  | 	// API路由组,需要用户认证 | 
					
						
							|  |  |  |  | 	engine := router.GetEngine() | 
					
						
							|  |  |  |  | 	apiGroup := engine.Group("/api/v1") | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-09-12 01:15:09 +08:00
										 |  |  |  | 		// API调用接口 - 不受频率限制(业务核心接口) | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 		apiGroup.POST("/:api_name", r.domainAuthMiddleware.Handle(""), r.apiHandler.HandleApiCall) | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-28 17:09:21 +08:00
										 |  |  |  | 		// Console专用接口 - 使用JWT认证,不需要域名认证 | 
					
						
							|  |  |  |  | 		apiGroup.POST("/console/:api_name", r.authMiddleware.Handle(), r.apiHandler.HandleApiCall) | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-27 22:19:19 +08:00
										 |  |  |  | 		// 表单配置接口(用于前端动态生成表单) | 
					
						
							|  |  |  |  | 		apiGroup.GET("/form-config/:api_code", r.authMiddleware.Handle(), r.apiHandler.GetFormConfig) | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 		// 加密接口(用于前端调试) | 
					
						
							|  |  |  |  | 		apiGroup.POST("/encrypt", r.authMiddleware.Handle(), r.apiHandler.EncryptParams) | 
					
						
							| 
									
										
										
										
											2025-09-02 16:37:28 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-18 14:13:16 +08:00
										 |  |  |  | 		// 解密接口(用于前端调试) | 
					
						
							|  |  |  |  | 		apiGroup.POST("/decrypt", r.authMiddleware.Handle(), r.apiHandler.DecryptParams) | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// 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) | 
					
						
							| 
									
										
										
										
											2025-09-12 01:15:09 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// 余额预警设置接口 | 
					
						
							|  |  |  |  | 		apiGroup.GET("/user/balance-alert/settings", r.authMiddleware.Handle(), r.apiHandler.GetUserBalanceAlertSettings) | 
					
						
							|  |  |  |  | 		apiGroup.PUT("/user/balance-alert/settings", r.authMiddleware.Handle(), r.apiHandler.UpdateUserBalanceAlertSettings) | 
					
						
							|  |  |  |  | 		apiGroup.POST("/user/balance-alert/test-sms", r.authMiddleware.Handle(), r.apiHandler.TestBalanceAlertSms) | 
					
						
							| 
									
										
										
										
											2025-07-28 01:46:39 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	r.logger.Info("API路由注册完成") | 
					
						
							|  |  |  |  | } |