Senior
Go HTTP serverlərində middleware nədir və necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go HTTP serverlərində Middleware, sorğu emalçısını (http.Handler) əhatə edən və əlavə məntiq, məsələn, qeydiyyat, autentifikasiya, səhv idarəetməsi və s. əlavə etmək üçün istifadə olunan funksiya və ya funksiyalar toplusudur.
Middleware, http.Handler qəbul edən və geri qaytaran funksiya kimi həyata keçirilir. Nümunə:
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) // növbəti emalçını çağırır
})
}
// İstifadə
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello"))
})
loggedMux := loggingMiddleware(mux)
http.ListenAndServe(":8080", loggedMux)
Beləliklə, middleware sorğuları ardıcıl işləməyə imkan verir, əsas emalçı dəyişmədən lazım olan funksional qatları əlavə edir.