J'essaie d'utiliser Golang middleware pour exécuter après gestion de routage Gorilla Mux, afin de changer la réponse de chaque demande.Exécuter le middleware après la gestion mux Gorilla
Échantillon de code voir ci-dessous. Actuellement, il retourne «exécuter avant, exécuter le test», l'objectif est de retourner «exécuter avant, exécuter le test, exécuter après» en utilisant le middleware runsafter.
Est-ce que quelque chose comme ceci est possible avec Gorilla Mux?
package main
import (
"fmt"
"github.com/gorilla/mux"
"net/http"
)
func runsbefore(h http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("run before, "))
h.ServeHTTP(w, r)
}
return http.HandlerFunc(fn)
}
func runsafter(h http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("run after, "))
h.ServeHTTP(w, r)
}
return http.HandlerFunc(fn)
}
func runtest(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("run test, "))
}
func main() {
fmt.Println("Server starting on port 8000")
r := mux.NewRouter()
r.HandleFunc("/", runtest).Methods("GET")
http.ListenAndServe(":8000", runsbefore(r))
// something like: http.ListenAndServe(":8000", runsbefore(r(runsafter)))
}