package routers import ( "os" "server/middleware" "server/routers/api" "server/routers/backend" "server/routers/index" "server/routers/platform" beego "github.com/beego/beego/v2/server/web" "github.com/beego/beego/v2/server/web/context" ) // 初始化路由(精简版) func init() { // 全局 CORS 处理 + 预检请求 beego.InsertFilter("*", beego.BeforeRouter, func(ctx *context.Context) { ctx.Output.Header("Access-Control-Allow-Origin", "*") ctx.Output.Header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS") ctx.Output.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization") ctx.Output.Header("Access-Control-Allow-Credentials", "true") ctx.Output.Header("Access-Control-Max-Age", "86400") if ctx.Input.Method() == "OPTIONS" { ctx.Output.Status = 200 ctx.Output.Body([]byte("")) return } }) // 全局操作日志:请求开始采集 beego.InsertFilter("*", beego.BeforeRouter, middleware.BeginOperationLog) // 全局操作日志:请求结束统一落库 beego.InsertFilter("*", beego.FinishRouter, middleware.FinishOperationLog) // 根据运行模式选择要注册的路由组 // 优先读取环境变量 APP_MODE,其次读取配置 app_mode,默认 all mode := os.Getenv("APP_MODE") if mode == "" { mode, _ = beego.AppConfig.String("app_mode") } if mode == "" { mode = "all" } switch mode { case "platform": platform.Register() // 在 platform 模式下,仍保留 backend 登录相关路由,避免后台登录 404 backend.RegisterAuthRoutes() case "backend": backend.Register() case "index": index.Register() case "api": api.Register() case "all": platform.Register() backend.Register() index.Register() api.Register() default: // 未知模式时,退回到只启用平台端,避免启动失败 platform.Register() } }