Files
PandaX/pkg/initialize/router.go
2023-10-24 14:06:57 +08:00

87 lines
2.2 KiB
Go

package initialize
import (
"pandax/apps/job/jobs"
ruleRouter "pandax/apps/rule/router"
"pandax/pkg/global"
"pandax/pkg/transport"
devRouter "pandax/apps/develop/router"
deviceRouter "pandax/apps/device/router"
jobRouter "pandax/apps/job/router"
logRouter "pandax/apps/log/router"
sysRouter "pandax/apps/system/router"
"pandax/pkg/middleware"
)
func InitRouter() *transport.HttpServer {
// server配置
serverConfig := global.Conf.Server
server := transport.NewHttpServer(serverConfig.GetPort())
container := server.Container
// 防止XSS
container.Filter(middleware.EscapeHTML)
// 是否允许跨域
if serverConfig.Cors {
container.Filter(middleware.Cors(container).Filter)
container.Filter(container.OPTIONSFilter)
}
// 流量限制
if serverConfig.Rate.Enable {
container.Filter(middleware.Rate)
}
// 设置路由组
{
sysRouter.InitSystemRouter(container)
sysRouter.InitOrganizationRouter(container)
sysRouter.InitConfigRouter(container)
sysRouter.InitApiRouter(container)
sysRouter.InitDictRouter(container)
sysRouter.InitMenuRouter(container)
sysRouter.InitRoleRouter(container)
sysRouter.InitPostRouter(container)
sysRouter.InitUserRouter(container)
sysRouter.InitNoticeRouter(container)
//本地图片上传接口
sysRouter.InitUploadRouter(container)
}
//日志系统
{
logRouter.InitOperLogRouter(container)
logRouter.InitLoginLogRouter(container)
}
// 代码生成
{
devRouter.InitGenTableRouter(container)
devRouter.InitGenRouter(container)
}
//设备
{
deviceRouter.InitProductCategoryRouter(container)
deviceRouter.InitDeviceGroupRouter(container)
deviceRouter.InitProductRouter(container)
deviceRouter.InitProductTemplateRouter(container)
deviceRouter.InitProductOtaRouter(container)
deviceRouter.InitDeviceRouter(container)
deviceRouter.InitDeviceAlarmRouter(container)
deviceRouter.InitDeviceCmdLogRouter(container)
}
{
jobRouter.InitJobRouter(container)
jobRouter.InitJobLogRouter(container)
}
{
ruleRouter.InitRuleChainRouter(container)
ruleRouter.InitRuleChainMsgLogRouter(container)
}
// api接口
middleware.SwaggerConfig(container)
// 开启调度任务
go func() {
jobs.InitJob()
}()
return server
}