75 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.7 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")
 | ||
| 
 | ||
| 	{
 | ||
| 		// API调用接口 - 不受频率限制(业务核心接口)
 | ||
| 		apiGroup.POST("/:api_name", r.domainAuthMiddleware.Handle(""), r.apiHandler.HandleApiCall)
 | ||
| 
 | ||
| 		// Console专用接口 - 使用JWT认证,不需要域名认证
 | ||
| 		apiGroup.POST("/console/:api_name", r.authMiddleware.Handle(), r.apiHandler.HandleApiCall)
 | ||
| 
 | ||
| 		// 表单配置接口(用于前端动态生成表单)
 | ||
| 		apiGroup.GET("/form-config/:api_code", r.authMiddleware.Handle(), r.apiHandler.GetFormConfig)
 | ||
| 
 | ||
| 		// 加密接口(用于前端调试)
 | ||
| 		apiGroup.POST("/encrypt", r.authMiddleware.Handle(), r.apiHandler.EncryptParams)
 | ||
| 
 | ||
| 		// 解密接口(用于前端调试)
 | ||
| 		apiGroup.POST("/decrypt", r.authMiddleware.Handle(), r.apiHandler.DecryptParams)
 | ||
| 
 | ||
| 		// 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)
 | ||
| 
 | ||
| 		// 余额预警设置接口
 | ||
| 		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)
 | ||
| 	}
 | ||
| 
 | ||
| 	r.logger.Info("API路由注册完成")
 | ||
| }
 |