package main import ( "encoding/json" "log" "net/http" ) func writeJSON(w http.ResponseWriter, status int, payload any) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(status) if err := json.NewEncoder(w).Encode(payload); err != nil { log.Printf("failed to encode json response: %v", err) } } func writeError(w http.ResponseWriter, status int, message string) { writeJSON(w, status, map[string]string{"error": message}) } func decodeJSON(r *http.Request, out any) error { decoder := json.NewDecoder(r.Body) decoder.DisallowUnknownFields() return decoder.Decode(out) }