Senior
Kas ir middleware Go HTTP serveros un kā tas tiek īstenots?
sobes.tech AI
Atbilde no AI
Middleware Go HTTP serveros ir ir funkcija vai funkciju kopums, kas ietver pieprasījuma apstrādātāju (http.Handler), lai pievienotu papildu loģiku, piemēram, reģistrēšanu, autentifikāciju, kļūdu apstrādi utt.
To realizē kā funkciju, kas pieņem http.Handler un atgriež http.Handler. Piemērs:
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Printf("Request: %s %s", r.Method, r.URL.Path)
next.ServeHTTP(w, r) // izsauc nākamo apstrādātāju
})
}
// Izmantošana
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello"))
})
loggedMux := loggingMiddleware(mux)
http.ListenAndServe(":8080", loggedMux)
Tādējādi middleware ļauj secīgi apstrādāt pieprasījumus, pievienojot nepieciešamās funkcijas slāņus bez galvenā apstrādātāja maiņas.