initrouter.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package router
  2. import (
  3. "device-manage/app/admin/middleware"
  4. "device-manage/app/admin/middleware/handler"
  5. "device-manage/common/global"
  6. "device-manage/common/log"
  7. _ "device-manage/pkg/jwtauth"
  8. "device-manage/tools"
  9. "device-manage/tools/config"
  10. "github.com/gin-gonic/gin"
  11. "os"
  12. )
  13. func InitRouter() {
  14. var r *gin.Engine
  15. h := global.Cfg.GetEngine()
  16. if h == nil {
  17. h = gin.New()
  18. global.Cfg.SetEngine(h)
  19. }
  20. switch h.(type) {
  21. case *gin.Engine:
  22. r = h.(*gin.Engine)
  23. default:
  24. log.Fatal("not support other engine")
  25. os.Exit(-1)
  26. }
  27. if config.SslConfig.Enable {
  28. r.Use(handler.TlsHandler())
  29. }
  30. r.Use(middleware.WithContextDb(middleware.GetGormFromConfig(global.Cfg)))
  31. middleware.InitMiddleware(r)
  32. // the jwt middleware
  33. var err error
  34. authMiddleware, err := middleware.AuthInit()
  35. tools.HasError(err, "JWT Init Error", 500)
  36. // 注册系统路由
  37. InitSysRouter(r, authMiddleware)
  38. // 注册业务路由
  39. // TODO: 这里可存放业务路由,里边并无实际路由只有演示代码
  40. InitBusinessRouter(r, authMiddleware)
  41. //return r
  42. }