package main import ( "encoding/json" "net/http" "strings" ) type User struct { Name string `json:"name"` Email string `json:"email"` } func users(w http.ResponseWriter, r *http.Request) { var input User dec := json.NewDecoder(http.MaxBytesReader(w, r.Body, 1<<20)) dec.DisallowUnknownFields() if err := dec.Decode(&input); err != nil || strings.TrimSpace(input.Name) == "" { http.Error(w, "invalid JSON", http.StatusBadRequest) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(input) } func main() { http.HandleFunc("/users", users); http.ListenAndServe("127.0.0.1:8080", nil) }