-
How i can get Name route in middlware? this is possible?
|
Beta Was this translation helpful? Give feedback.
Answered by
aldas
Jan 25, 2022
Replies: 2 comments 2 replies
-
something like that func main() {
e := echo.New()
e.Use(middleware.Logger())
e.Use(middleware.Recover())
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "OK")
}).Name = "root"
// after all routes have been registered
e.Use(func(next echo.HandlerFunc) echo.HandlerFunc {
registeredRoutes := e.Routes()
return func(c echo.Context) error {
for _, r := range registeredRoutes {
if r.Method == c.Request().Method && r.Path == c.Path() {
log.Printf("route name: %s", r.Name)
break
}
}
return next(c)
}
})
log.Fatal(e.Start(":8080"))
} |
Beta Was this translation helpful? Give feedback.
1 reply
-
maybe routeNameMiddleware := func(next echo.HandlerFunc) echo.HandlerFunc {
var doOnce sync.Once
var registeredRoutes []*echo.Route
return func(c echo.Context) error {
doOnce.Do(func() {
registeredRoutes = c.Echo().Routes()
})
for _, r := range registeredRoutes {
if r.Method == c.Request().Method && r.Path == c.Path() {
log.Printf("route name: %s", r.Name)
break
}
}
return next(c)
}
}
e.Use(routeNameMiddleware) |
Beta Was this translation helpful? Give feedback.
1 reply
Answer selected by
johndiego
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
maybe