package router import ( "github.com/gin-gonic/gin" "net/http" "wireguard-ui/config" "wireguard-ui/dist" ) type Option func(engine *gin.RouterGroup) var options []Option func includeRouters(opts ...Option) { options = append(options, opts...) } func InitRouter() *gin.Engine { r := gin.New() // 开启IP 追踪 r.ForwardedByClientIP = true // 将请求打印至控制台 r.Use(gin.Logger()) if config.Config.File.Type == "local" { r.Static("/assets", config.Config.File.Path) } r.StaticFS("/web", http.FS(dist.Static)) for _, opt := range options { opt(r.Group("api")) } return r } func Rooters() { includeRouters( LoginApi, UserApi, ClientApi, SettingApi, DashboardApi, ) }