Skip to content

Not all middlewares are present in chi.Walk #931

Open
@dils2k

Description

Consider this example:

mux := chi.NewMux()
mux.With(middleware).Group(func(r chi.Router) {
	r.Route("/foo", func(r chi.Router) {
		r.With(middleware).Post("/bar", func(w http.ResponseWriter, r *http.Request) {})
	})
})

/foo/bar route is expected to have two middlewares: one inherited from the group, second defined for the route itself.

But when I use chi.Walk function to get all routes with corresponding middlewares /foo/bar route has only one middleware:

chi.Walk(mux, func(method, route string, handler http.Handler, middlewares ...func(http.Handler) http.Handler) error {
	fmt.Println(middlewares) // it prints [0x1047fcba0], array with only one element, but we expected two elements
	return nil
})

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions