🎭Grouping


경로

라우팅과 마찬가지로 그룹도 클러스터에 속하는 경로를 가질 수 있습니다.

func main() {
  app := fiber.New()

  api := app.Group("/api", middleware) // /api
  v1 := api.Group("/v1", middleware)    // /api/v1
  v1.Get("/list", handler)              // /api/v1/list
  v1.Get("/user", handler)              // /api/v1/user

  v2 := api.Group("/v2", middleware)    // /api/v2
  v2.Get("/list", handler)              // /api/v2/list 
  v2.Get("/user", handler)              // /api/v2/user

  log.Fatal(app.Listen(":3000"))
}

경로의 Group은 선택적인 handler를 가질 수 있습니다.

func main() {
  app := fiber.New()

  api := app.Group("/api")              // /api
  v1 := api.Group("/v1")                // /api/v1
  v1.Get("/list", handler)              // /api/v1/list
  v1.Get("/user", handler)              // /api/v1/user

  v2 := api.Group("/v2")                // /api/v2
  v2.Get("/list", handler)              // /api/v2/list
  v2.Get("/user", handler)              // /api/v2/user

  log.Fatal(app.Listen(":3000"))
}

/api, /v1 또는 /v2를 실행하면 404 오류가 발생하므로 오류가 설정되어 있는지 확인하세요.

Group 핸들러

Group 핸들러는 라우팅 경로로도 사용할 수 있지만 흐름이 계속될 수 있도록 Next를 추가해야 합니다.

func main() {
  app := fiber.New()

  handler := func(c *fiber.Ctx) error {
    return c.SendStatus(fiber.StatusOK)
  }

  api := app.Group("/api")              // /api
  v1 := api.Group("/v1", func(c *fiber.Ctx) error {   // /api/v1을 위한 미들웨어
    c.Set("Version", "v1")
    return c.Next()
  })
  v1.Get("/list", handler)              // /api/v1/list
  v1.Get("/user", handler)              // /api/v1/user

  log.Fatal(app.Listen(":3000"))
}

Last updated