package main import ( "encoding/json" "fmt" "log" "net/http" ) func respondWithError(w http.ResponseWriter, code int, msg string, logErr error) { if logErr != nil { log.Println(logErr) } if code > 499 { log.Printf("Responding with 5XX error: %s", msg) } type errorResponse struct { Error string `json:"error"` } respondWithJSON(w, code, errorResponse{ Error: msg, }) } func respondWithJSON(w http.ResponseWriter, code int, payload interface{}) { w.Header().Set("Content-Type", "application/json") dat, err := json.Marshal(payload) if err != nil { log.Printf("Error marshalling JSON: %s", err) w.WriteHeader(500) return } w.WriteHeader(code) _, err = w.Write(dat) if err != nil { fmt.Printf("Error wiring response: %s", err.Error()) return } }