Senior
Go HTTP серверлеринде middleware деген эмне жана ал кантип ишке ашырылат?
sobes.tech AI
AIден жооп
Go HTTP серверлеринде middleware — бул сураныч иштетүүчүнү (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 суранычтарды кезектешип иштетүүгө мүмкүндүк берет, негизги иштетүүчүнү өзгөртпөстөн, керектүү функционалдык катмары кошулат.