广告平台(站长下代理使用)
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

75 рядки
2.4 KiB

  1. package router
  2. import (
  3. "applet/app/cfg"
  4. "applet/app/hdl"
  5. "applet/app/mw"
  6. _ "applet/docs"
  7. "github.com/gin-gonic/gin"
  8. )
  9. // 初始化路由
  10. func Init() *gin.Engine {
  11. // debug, release, test 项目阶段
  12. mode := "release"
  13. if cfg.Debug {
  14. mode = "debug"
  15. }
  16. gin.SetMode(mode)
  17. //创建一个新的启动器
  18. r := gin.New()
  19. r.Use(mw.ChangeHeader)
  20. // 是否打印访问日志, 在非正式环境都打印
  21. if mode != "release" {
  22. r.Use(gin.Logger())
  23. }
  24. r.Use(gin.Recovery())
  25. // r.Use(mw.Limiter)
  26. //r.LoadHTMLGlob("static/html/*")
  27. r.GET("/favicon.ico", func(c *gin.Context) {
  28. c.Status(204)
  29. })
  30. r.NoRoute(func(c *gin.Context) {
  31. c.JSON(404, gin.H{"code": 404, "msg": "page not found", "data": []struct{}{}})
  32. })
  33. r.NoMethod(func(c *gin.Context) {
  34. c.JSON(405, gin.H{"code": 405, "msg": "method not allowed", "data": []struct{}{}})
  35. })
  36. r.Use(mw.Cors)
  37. route(r.Group("/api"))
  38. return r
  39. }
  40. func route(r *gin.RouterGroup) {
  41. r.GET("/test", hdl.Demo)
  42. r.Use(mw.DB) // 以下接口需要用到数据库
  43. {
  44. r.POST("/login", hdl.Login)
  45. }
  46. r.Use(mw.CheckBody) //body参数转换
  47. r.Use(mw.CheckSign) //签名校验
  48. r.Use(mw.Auth) // 以下接口需要JWT验证
  49. rRole(r.Group("/role")) //权限管理
  50. }
  51. func rRole(r *gin.RouterGroup) {
  52. r.GET("/roleList", hdl.RoleList) //角色列表
  53. r.POST("/addRole", hdl.AddRole) //角色添加
  54. r.POST("/roleBindPermissionGroup", hdl.RoleBindPermissionGroup) //角色绑定权限组
  55. r.POST("/updateRoleState", hdl.UpdateRoleState) //修改角色状态
  56. r.POST("/updateRole", hdl.UpdateRole) //修改角色状态
  57. r.DELETE("/deleteRole/:id", hdl.DeleteRole) //删除角色
  58. r.GET("/permissionGroupList", hdl.PermissionGroupList) //权限组列表
  59. r.POST("/adminList", hdl.AdminList) //管理员列表
  60. r.POST("/updateAdminState", hdl.UpdateAdminState) //修改管理员状态
  61. r.POST("/updateAdmin", hdl.UpdateAdmin) //修改管理员信息
  62. r.POST("/addAdmin", hdl.AddAdmin) //新增管理员
  63. r.DELETE("/deleteAdmin/:adm_id", hdl.DeleteAdmin) //删除管理员
  64. r.GET("/adminInfo", hdl.AdminInfo) //获取管理员信息
  65. r.POST("/bindAdminRole", hdl.BindAdminRole) //绑定角色
  66. }