router.go 2.2 KB

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