Ich benutze Gorilla Mux für Request Routing. Ich schrieb eine grundlegende Middleware, die ich user
Variable zum Kontext für die Reichweite in Handler hinzufügen möchte. Aber ich chould nicht gefunden, wie kann ich Routenparameter in der Middleware erhalten:Wie erreiche ich Routenparameter in der Middleware?
router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/{username}/accounts", AccountListHandler)
log.Fatal(http.ListenAndServe(":8080", AuthMiddleware(router)))
Middleware-Code:
func AuthMiddleware(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// params := mux.Vars(r)
// fmt.Printf("%v", params["username"])
user := User{Username: "myUsername"}
ctx := context.WithValue(r.Context(), "user", user)
h.ServeHTTP(w, r.WithContext(ctx))
})
}
I username
Paramter in der Middleware erreichen will. Wie kann ich das machen?