go-platform/routers/router.go
2026-03-31 17:28:07 +08:00

61 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package routers
import (
"os"
"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
}
})
// 根据运行模式选择要注册的路由组
// 优先读取环境变量 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()
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()
}
}