69 lines
2.2 KiB
Go
69 lines
2.2 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)
|
||
|
||
// 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)
|
||
}
|
||
|
||
r.logger.Info("API路由注册完成")
|
||
}
|