liuhaijun e94826ce29 add server
Change-Id: I0760f17f6a01c0121b59fcbfafc666032dbc30af
2024-09-19 09:44:15 +00:00

81 lines
1.8 KiB
Go

package routers
import (
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/config"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/middleware"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/errors"
response2 "git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/response"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/routers/vue"
"github.com/gin-gonic/gin"
"io/ioutil"
"net/http"
)
func SetRouters() *gin.Engine {
var r *gin.Engine
if config.Config.Debug == false {
// 生产模式
r = ReleaseRouter()
r.Use(
middleware.AuthenticationHandler(),
middleware.RequestCostHandler(),
middleware.CustomLogger(),
middleware.CustomRecovery(),
middleware.CorsHandler(),
middleware.AppContextHandler(),
middleware.AuthorizationHandler(),
)
} else {
// 开发调试模式
r = gin.New()
r.Use(
//gin.Logger(),
middleware.AuthenticationHandler(),
middleware.RequestCostHandler(),
middleware.CustomLogger(),
middleware.CustomRecovery(),
middleware.CorsHandler(),
middleware.AppContextHandler(),
middleware.AuthorizationHandler(),
)
}
//// set up trusted agents
//err := r.SetTrustedProxies([]string{"127.0.0.1"})
//if err != nil {
// panic(err)
//}
// ping
r.Any("/ping", func(c *gin.Context) {
c.AbortWithStatusJSON(http.StatusOK, gin.H{
"message": "pong!",
})
})
// 设置 API 路由
setApiRoute(r)
if config.Config.WebEmbed == true {
vue.AddVueRouter(r)
} else {
r.NoRoute(func(c *gin.Context) {
response2.Resp().SetHttpCode(http.StatusNotFound).FailCode(c, errors.NotFound)
})
}
return r
}
// ReleaseRouter 生产模式使用官方建议设置为 release 模式
func ReleaseRouter() *gin.Engine {
// 切换到生产模式
gin.SetMode(gin.ReleaseMode)
// 禁用 gin 输出接口访问日志
gin.DefaultWriter = ioutil.Discard
engine := gin.New()
return engine
}