Senior
O que é middleware em servidores HTTP Go e como é implementado?
sobes.tech IA
Resposta da IA
O middleware em servidores HTTP Go é uma função ou conjunto de funções que envolvem o manipulador de requisições (http.Handler) para adicionar lógica adicional, como logging, autenticação, tratamento de erros, etc.
Implementa-se como uma função que aceita um http.Handler e retorna um http.Handler. Exemplo:
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) // chama o próximo manipulador
})
}
// Uso
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello"))
})
loggedMux := loggingMiddleware(mux)
http.ListenAndServe(":8080", loggedMux)
Assim, o middleware permite processar as requisições de forma sequencial, adicionando camadas funcionais necessárias sem alterar o manipulador principal.