Files
RUSTDESK-AP-SERVER-SUNLIX/http/http.go

42 lines
1.1 KiB
Go

package http
import (
"github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
"github.com/lejianwen/rustdesk-api/v2/http/middleware"
"github.com/lejianwen/rustdesk-api/v2/http/router"
"github.com/sirupsen/logrus"
"net/http"
"strings"
)
func ApiInit() {
gin.SetMode(global.Config.Gin.Mode)
g := gin.New()
//[WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
//Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
if global.Config.Gin.TrustProxy != "" {
pro := strings.Split(global.Config.Gin.TrustProxy, ",")
err := g.SetTrustedProxies(pro)
if err != nil {
panic(err)
}
}
if global.Config.Gin.Mode == gin.ReleaseMode {
//修改gin Recovery日志 输出为logger的输出点
if global.Logger != nil {
gin.DefaultErrorWriter = global.Logger.WriterLevel(logrus.ErrorLevel)
}
}
g.NoRoute(func(c *gin.Context) {
c.String(http.StatusNotFound, "404 not found")
})
g.Use(middleware.Logger(), middleware.Limiter(), gin.Recovery())
router.WebInit(g)
router.Init(g)
router.ApiInit(g)
Run(g, global.Config.Gin.ApiAddr)
}