31. Go: Serwer HTTP z Graceful Shutdown
GoObsługa żądań z propagacją context.Context i bezpiecznym zamykaniem.
package main
import (
"net/http"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte("OK"))
})
http.ListenAndServe(":8080", mux)
}
Kiedy używać
Podstawa każdej usługi HTTP w Go — punkt startowy do budowy API czy mikroserwisu.
Typowe pułapki
Ten przykład nie obsługuje faktycznego graceful shutdown (przechwycenia sygnału SIGTERM) — w produkcji trzeba dodać obsługę sygnałów i http.Server.Shutdown().