main.go
package main
import (
"fmt"
"log"
"net/http"
)
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Printf("%s %s\n", r.Method, r.URL.Path)
next.ServeHTTP(w, r)
})
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, with middleware!")
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", helloHandler)
server := &http.Server{
Addr: ":8080",
Handler: loggingMiddleware(mux),
}
log.Println("Starting server on :8080...")
if err := server.ListenAndServe(); err != nil {
log.Fatal(err)
}
}

posted on
浙公网安备 33010602011771号