Go Net HTTP Middleware Chain Logging Auth Recover
Definisi
Middleware di Go net/http adalah fungsi yang membungkus http.Handler menjadi handler baru, menambahkan perilaku (logging, auth, CORS) sebelum meneruskan ke handler inti. Karena http.Handler sangat sederhana, middleware biasanya dibuat dengan pola func(next http.Handler) http.Handler.
Kapan dipakai
Pakai middleware untuk kekhawatiran lintas-cutting yang berlaku untuk banyak route: autentikasi, logging request, recovery dari panic, compression, rate limit sederhana. Jangan taruh logika bisnis spesifik endpoint di middleware; itu tugas handler.
Cara kerja
Middleware tunggal
func Logging(next http.Handler) http.Handler {
return http.HandlerFunc(func(w