router.go 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package initialize
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/plugin/email"
  4. "github.com/flipped-aurora/gin-vue-admin/plugin/example_plugin"
  5. "net/http"
  6. _ "github.com/flipped-aurora/gin-vue-admin/docs"
  7. "github.com/flipped-aurora/gin-vue-admin/global"
  8. "github.com/flipped-aurora/gin-vue-admin/middleware"
  9. "github.com/flipped-aurora/gin-vue-admin/router"
  10. "github.com/gin-gonic/gin"
  11. "github.com/swaggo/gin-swagger"
  12. "github.com/swaggo/gin-swagger/swaggerFiles"
  13. )
  14. // 初始化总路由
  15. func Routers() *gin.Engine {
  16. var Router = gin.Default()
  17. Router.StaticFS(global.GVA_CONFIG.Local.Path, http.Dir(global.GVA_CONFIG.Local.Path)) // 为用户头像和文件提供静态地址
  18. // Router.Use(middleware.LoadTls()) // 打开就能玩https了
  19. global.GVA_LOG.Info("use middleware logger")
  20. // 跨域
  21. //Router.Use(middleware.Cors()) // 如需跨域可以打开
  22. global.GVA_LOG.Info("use middleware cors")
  23. Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  24. global.GVA_LOG.Info("register swagger handler")
  25. // 方便统一添加路由组前缀 多服务器上线使用
  26. //获取路由组实例
  27. systemRouter := router.RouterGroupApp.System
  28. exampleRouter := router.RouterGroupApp.Example
  29. autocodeRouter := router.RouterGroupApp.Autocode
  30. PublicGroup := Router.Group("")
  31. {
  32. systemRouter.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权
  33. systemRouter.InitInitRouter(PublicGroup) // 自动初始化相关
  34. }
  35. PrivateGroup := Router.Group("")
  36. PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
  37. {
  38. systemRouter.InitApiRouter(PrivateGroup) // 注册功能api路由
  39. systemRouter.InitJwtRouter(PrivateGroup) // jwt相关路由
  40. systemRouter.InitUserRouter(PrivateGroup) // 注册用户路由
  41. systemRouter.InitMenuRouter(PrivateGroup) // 注册menu路由
  42. systemRouter.InitSystemRouter(PrivateGroup) // system相关路由
  43. systemRouter.InitCasbinRouter(PrivateGroup) // 权限相关路由
  44. systemRouter.InitAutoCodeRouter(PrivateGroup) // 创建自动化代码
  45. systemRouter.InitAuthorityRouter(PrivateGroup) // 注册角色路由
  46. systemRouter.InitSysDictionaryRouter(PrivateGroup) // 字典管理
  47. systemRouter.InitSysOperationRecordRouter(PrivateGroup) // 操作记录
  48. systemRouter.InitSysDictionaryDetailRouter(PrivateGroup) // 字典详情管理
  49. exampleRouter.InitFileUploadAndDownloadRouter(PrivateGroup) // 文件上传下载功能路由
  50. exampleRouter.InitExcelRouter(PrivateGroup) // 表格导入导出
  51. exampleRouter.InitSimpleUploaderRouter(PrivateGroup) // 断点续传(插件版)
  52. exampleRouter.InitCustomerRouter(PrivateGroup) // 客户路由
  53. // Code generated by github.com/flipped-aurora/gin-vue-admin Begin; DO NOT EDIT.
  54. autocodeRouter.InitSysAutoCodeExampleRouter(PrivateGroup)
  55. // Code generated by github.com/flipped-aurora/gin-vue-admin End; DO NOT EDIT.
  56. }
  57. // 添加开放权限的插件 示例
  58. PluginInit(PublicGroup, example_plugin.ExamplePlugin)
  59. // 添加跟角色挂钩权限的插件 示例
  60. PluginInit(PrivateGroup, email.CreateEmailPlug(
  61. global.GVA_CONFIG.Email.To,
  62. global.GVA_CONFIG.Email.From,
  63. global.GVA_CONFIG.Email.Host,
  64. global.GVA_CONFIG.Email.Secret,
  65. global.GVA_CONFIG.Email.Nickname,
  66. global.GVA_CONFIG.Email.Port,
  67. global.GVA_CONFIG.Email.IsSSL,
  68. ))
  69. global.GVA_LOG.Info("router register success")
  70. return Router
  71. }