package routers import ( "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/config" "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/middleware" "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/pkg/errors" response2 "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/pkg/response" "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) 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 }