package main import ( "fmt" "net/http" ) func writeError(w http.ResponseWriter, status int, err interface{}) { w.WriteHeader(status) fmt.Fprintln(w, err) } func CreateApiHandler(settings *TranslateSettings) func(w http.ResponseWriter, req *http.Request) { return func(w http.ResponseWriter, req *http.Request) { from := req.FormValue("from") if from == "" { writeError(w, 400, "'from' field is missing") return } to := req.FormValue("to") if to == "" { writeError(w, 400, "'to' field is missing") return } text := req.FormValue("text") if text == "" { writeError(w, 400, "'text' field is missing") return } translation, err := Translate(settings, from, to, text) if err != nil { writeError(w, 500, err) return } fmt.Fprint(w, translation) } }