DeployHelper/internal/router/routers.go

45 lines
1.0 KiB
Go
Raw Normal View History

2025-08-01 16:38:08 +08:00
package router
import (
"ego/internal/conf"
"ego/internal/middleware"
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
)
var (
apiRouterFns []func(r *gin.RouterGroup)
)
// NewRouter 路由配置
func NewRouter() *gin.Engine {
// gin 实例
engine := gin.Default()
// 跨域处理
engine.Use(middleware.Cors())
// zap 日志
engine.Use(middleware.GinZapLogger())
// 统一错误处理
engine.Use(middleware.UnifiedErrorResponse())
// 登录日志中间件
engine.Use(middleware.LoginLogMiddleware(conf.Db))
// swagger
if gin.Mode() != gin.ReleaseMode {
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
}
// register routers, middleware support
registerRouters(engine, "/api/v1", apiRouterFns)
return engine
}
// registerRouters 注册路由
func registerRouters(r *gin.Engine, groupPath string, routerFns []func(*gin.RouterGroup), handlers ...gin.HandlerFunc) {
rg := r.Group(groupPath, handlers...)
for _, fn := range routerFns {
fn(rg)
}
}