qinglong-go/controller/router.go

39 lines
978 B
Go
Raw Normal View History

2022-11-16 10:20:07 +00:00
package controller
import (
"github.com/gin-contrib/gzip"
2022-11-16 10:20:07 +00:00
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
"github.com/huoxue1/qinglong-go/api"
2023-02-03 04:43:37 +00:00
"io/ioutil"
"strings"
2022-11-16 10:20:07 +00:00
)
func Router() *gin.Engine {
engine := gin.New()
2022-11-20 14:11:47 +00:00
engine.Use(gin.Logger())
engine.Use(gin.Recovery())
engine.Use(gzip.Gzip(gzip.BestSpeed))
2022-11-16 10:20:07 +00:00
engine.Use(static.Serve("/", static.LocalFile("static/dist/", false)))
engine.NoRoute(func(ctx *gin.Context) {
2023-02-03 04:43:37 +00:00
accept := ctx.Request.Header.Get("Accept")
flag := strings.Contains(accept, "text/html")
if flag {
content, err := ioutil.ReadFile("static/dist/index.html")
if (err) != nil {
ctx.Writer.WriteHeader(404)
_, _ = ctx.Writer.WriteString("Not Found")
return
}
ctx.Writer.WriteHeader(200)
ctx.Writer.Header().Add("Accept", "text/html")
_, _ = ctx.Writer.Write(content)
ctx.Writer.Flush()
2022-11-16 10:20:07 +00:00
}
})
2022-11-20 14:11:47 +00:00
api.Api(engine.Group("/api", api.Jwt()))
api.Open(engine.Group("/open", api.OpenJwt()))
2022-11-16 10:20:07 +00:00
return engine
}