go-platform/routers/router.go
2026-04-01 16:41:41 +08:00

69 lines
1.9 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/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()
}
}