package router import ( "fonchain-fiee/pkg/middleware" "fonchain-fiee/pkg/service/auth" "fonchain-fiee/pkg/service/lang" "fonchain-fiee/pkg/service/qr" "fonchain-fiee/pkg/service/redirect" "fonchain-fiee/pkg/service/version" "github.com/gin-contrib/gzip" "net/http" "github.com/gin-contrib/pprof" "github.com/gin-gonic/gin" ) // 路由配置 func NewRouter() *gin.Engine { //使用默认gin路由 r := gin.Default() r.Use(gzip.Gzip(gzip.BestSpeed)) // 中间件占用绝大部分内存 //加入日志中间件,跨域中间件 r.Use(middleware.NewLogger(), middleware.Cors(), middleware.GinRecovery(true)) //加入日志中间件,跨域中间件 v1 := r.Group("api") GiteaRoute(v1) v1.GET("test", func(c *gin.Context) { c.String(200, "你好") // 或者使用 c.Writer.WriteString("你好") return }) { v1.POST("version", version.Version) //版本号公共 } { //图片相关 imageRoute := v1.Group("image") imageRoute.POST("upload", qr.Upload) imageRoute.GET("qr/url", qr.CreateQr) imageRoute.GET("qr/redirect/url", qr.CreateRedirectQr) imageRoute.GET("qr/url/base64", qr.CreateQrBase64) imageRoute.GET("qr/redirect/url/base64", qr.CreateRedirectQrBase64) } { //跳转相关 redirectRoute := v1.Group("redirect") redirectRoute.GET("url", redirect.ToRedirectRealUrl) redirectRoute.GET("url/rand", redirect.ToRedirectRealUrlAdnRand) //重定向代理 } { translateRoute := v1.Group("msg/translate") translateRoute.POST("cn", lang.ChangeLandMsg) //中文提示翻译成指定语言,自动化翻译 } { //图片相关 redirectRoute := v1.Group("tt") redirectRoute.POST("down", auth.DownImg) redirectRoute.POST("sdk/down/v2", auth.DownImgV2) redirectRoute.POST("sdk/down/v3", auth.DownImgV3) } // 套餐 { bundleRoute := r.Group("bundle") bundleClientRoute := bundleRoute.Group("system") { bundleClientRoute.POST("create", bundle.CreateBundle) } } //静态文件 r.StaticFS("/static", http.Dir("./runtime")) r.NoRoute(func(c *gin.Context) { c.JSON(http.StatusNotFound, gin.H{ "status": 1, "msg": "不存在的路由", }) }) pprof.Register(r) return r }