Senior
Τι είναι το middleware στους διακομιστές HTTP Go και πώς υλοποιείται;
sobes.tech AI
Απάντηση από AI
Το middleware σε διακομιστές HTTP Go είναι μια λειτουργία ή σύνολο λειτουργιών που περικλείουν τον χειριστή αιτήματος (http.Handler) για την προσθήκη επιπλέον λογικής, όπως καταγραφή, αυθεντικοποίηση, διαχείριση σφαλμάτων κ.λπ.
Εφαρμόζεται ως μια λειτουργία που δέχεται έναν http.Handler και επιστρέφει έναν http.Handler. Παράδειγμα:
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) // καλεί τον επόμενο χειριστή
})
}
// Χρήση
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello"))
})
loggedMux := loggingMiddleware(mux)
http.ListenAndServe(":8080", loggedMux)
Έτσι, το middleware επιτρέπει την διαδοχική επεξεργασία αιτημάτων, προσθέτοντας απαραίτητες λειτουργικές στρώσεις χωρίς να αλλάξει ο κύριος χειριστής.