118 lines
2.6 KiB
Go
118 lines
2.6 KiB
Go
package src
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"be.ems/src/framework/config"
|
|
"be.ems/src/framework/errorcatch"
|
|
"be.ems/src/framework/middleware"
|
|
"be.ems/src/framework/middleware/security"
|
|
|
|
"be.ems/src/modules/auth"
|
|
"be.ems/src/modules/chart"
|
|
"be.ems/src/modules/common"
|
|
"be.ems/src/modules/core"
|
|
"be.ems/src/modules/crontask"
|
|
"be.ems/src/modules/monitor"
|
|
networkdata "be.ems/src/modules/network_data"
|
|
networkelement "be.ems/src/modules/network_element"
|
|
networklink "be.ems/src/modules/network_link"
|
|
"be.ems/src/modules/oauth2"
|
|
"be.ems/src/modules/system"
|
|
"be.ems/src/modules/tool"
|
|
"be.ems/src/modules/trace"
|
|
"be.ems/src/modules/ws"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// 初始应用引擎
|
|
func AppEngine() *gin.Engine {
|
|
var app *gin.Engine
|
|
|
|
// 禁止控制台日志输出的颜色
|
|
gin.DisableConsoleColor()
|
|
|
|
// 根据运行环境注册引擎
|
|
if config.Env() == "prod" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
app = gin.New()
|
|
app.Use(gin.Recovery())
|
|
} else {
|
|
app = gin.Default()
|
|
}
|
|
app.ForwardedByClientIP = true
|
|
return app
|
|
}
|
|
|
|
// 初始全局默认
|
|
func DefeatConfig(app *gin.Engine) {
|
|
// 全局中间件
|
|
if config.Env() == "local" {
|
|
app.Use(middleware.Report())
|
|
}
|
|
app.Use(errorcatch.ErrorCatch(), middleware.Cors(), security.Security())
|
|
|
|
// 静态目录-静态资源
|
|
if v := config.Get("staticFile.default"); v != nil {
|
|
fsMap := v.(map[string]any)
|
|
prefix, dir := fsMap["prefix"], fsMap["dir"]
|
|
if prefix != nil && dir != nil {
|
|
app.StaticFS(prefix.(string), gin.Dir(dir.(string), true))
|
|
}
|
|
}
|
|
|
|
// 静态目录-上传资源
|
|
if v := config.Get("staticFile.upload"); v != nil {
|
|
fsMap := v.(map[string]any)
|
|
prefix, dir := fsMap["prefix"], fsMap["dir"]
|
|
if prefix != nil && dir != nil {
|
|
app.StaticFS(prefix.(string), gin.Dir(dir.(string), true))
|
|
}
|
|
}
|
|
|
|
// 路由未找到时
|
|
app.NoRoute(func(c *gin.Context) {
|
|
c.JSON(404, gin.H{
|
|
"code": 404,
|
|
"msg": fmt.Sprintf("Not Found %s", c.Request.RequestURI),
|
|
})
|
|
})
|
|
}
|
|
|
|
// 初始模块路由
|
|
func ModulesRoute(app *gin.Engine) {
|
|
// 系统模块
|
|
system.Setup(app)
|
|
// 认证模块
|
|
auth.Setup(app)
|
|
// 开放客户端模块
|
|
oauth2.Setup(app)
|
|
// 通用模块
|
|
common.Setup(app)
|
|
|
|
// 核心网模块
|
|
core.Setup(app)
|
|
|
|
// 网元功能模块
|
|
networkelement.Setup(app)
|
|
// 网元数据模块
|
|
networkdata.Setup(app)
|
|
// 网元直连模块
|
|
networklink.Setup(app)
|
|
|
|
// 跟踪模块
|
|
trace.Setup(app)
|
|
// 图表模块
|
|
chart.Setup(app)
|
|
// 工具模块
|
|
tool.Setup(app)
|
|
// ws 模块
|
|
ws.Setup(app)
|
|
|
|
// 调度任务模块--暂无接口
|
|
crontask.Setup(app)
|
|
// 监控模块 - 含调度处理加入队列,放最后
|
|
monitor.Setup(app)
|
|
}
|