router.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package router
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/sirupsen/logrus"
  5. "sghgogs.com/sghblog/authorization-client/router/v1/admin/permission"
  6. "sghgogs.com/sghblog/authorization-client/router/v1/admin_role"
  7. "sghgogs.com/sghblog/authorization-client/router/v1/admin_user"
  8. swaggerFiles "github.com/swaggo/files"
  9. "github.com/swaggo/gin-swagger"
  10. "go-micro.dev/v4/client"
  11. "net/http"
  12. _ "sghgogs.com/sghblog/authorization-client/docs"
  13. "sghgogs.com/sghblog/authorization-client/router/v1/admin_common"
  14. "sghgogs.com/sghblog/authorization-client/utils/baseservice"
  15. "sghgogs.com/sghblog/authorization-client/utils/tracing"
  16. "time"
  17. )
  18. func Logger() gin.HandlerFunc {
  19. // 创建一个新的 Logrus 日志记录器
  20. log := logrus.New()
  21. // 设置日志级别
  22. // log.SetLevel(logrus.DebugLevel)
  23. log.SetLevel(logrus.TraceLevel)
  24. return func(c *gin.Context) {
  25. start := time.Now()
  26. c.Next()
  27. latency := time.Since(start)
  28. log.Printf("[%s] %s %s %s %s",
  29. c.Request.Method,
  30. c.Request.RequestURI,
  31. c.ClientIP(),
  32. latency,
  33. c.Request.UserAgent(),
  34. )
  35. }
  36. }
  37. func NewRouter(namespace string, client client.Client) *gin.Engine {
  38. r := gin.Default()
  39. r.Use(Logger())
  40. // TracingContextWrapper
  41. r.Use(tracing.NewTracingContextWrapper())
  42. // r.Use(TokenAuthMiddleware(service))
  43. // userRouters := users.NewUsersRouter(namespace, client, service)
  44. // authRouters := register.NewAuthRouter(namespace, client, service)
  45. // roleRouters := roles.NewRolesRouter(namespace, client, service)
  46. // selectRouter := selects.NewSelectRouter(namespace, client, service)
  47. // permissionRouter := permissions.NewPermissionRouter(namespace, client, service)
  48. // baseservice.RegisterRouters(r, authRouters, userRouters, roleRouters, selectRouter, permissionRouter)
  49. // r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  50. adminCommonRouter := admin_common.NewAdminCommonRouter(namespace, client)
  51. adminRoleRouter := admin_role.NewAdminRoleRouter(namespace, client)
  52. adminUserRouter := admin_user.NewAdminUserRouter(namespace, client)
  53. permissionRouter := permission.NewAdminPermissionRouter(namespace, client)
  54. baseservice.RegisterRouters(r, adminCommonRouter, adminRoleRouter, adminUserRouter, permissionRouter)
  55. r.GET("/_healthz", func(c *gin.Context) {
  56. c.String(http.StatusOK, "ok")
  57. })
  58. r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  59. return r
  60. }