http.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package server
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/go-nunu/nunu-layout-advanced/internal/handler"
  5. "github.com/go-nunu/nunu-layout-advanced/internal/middleware"
  6. "github.com/go-nunu/nunu-layout-advanced/pkg/helper/resp"
  7. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  8. )
  9. func NewServerHTTP(
  10. logger *log.Logger,
  11. jwt *middleware.JWT,
  12. userHandler handler.UserHandler,
  13. ) *gin.Engine {
  14. gin.SetMode(gin.ReleaseMode)
  15. r := gin.Default()
  16. r.Use(
  17. middleware.CORSMiddleware(),
  18. middleware.ResponseLogMiddleware(logger),
  19. //middleware.SignMiddleware(log),
  20. )
  21. // 无权限路由
  22. noAuthRouter := r.Group("/").Use(middleware.RequestLogMiddleware(logger))
  23. {
  24. noAuthRouter.GET("/", func(ctx *gin.Context) {
  25. logger.WithContext(ctx).Info("hello")
  26. resp.HandleSuccess(ctx, map[string]interface{}{
  27. "say": "Hi Nunu!",
  28. })
  29. })
  30. noAuthRouter.POST("/register", userHandler.Register)
  31. noAuthRouter.POST("/login", userHandler.Login)
  32. }
  33. // 非严格权限路由
  34. noStrictAuthRouter := r.Group("/").Use(middleware.NoStrictAuth(jwt, logger), middleware.RequestLogMiddleware(logger))
  35. {
  36. noStrictAuthRouter.GET("/user", userHandler.GetProfile)
  37. }
  38. // 严格权限路由
  39. strictAuthRouter := r.Group("/").Use(middleware.StrictAuth(jwt, logger), middleware.RequestLogMiddleware(logger))
  40. {
  41. strictAuthRouter.PUT("/user", userHandler.UpdateProfile)
  42. }
  43. return r
  44. }