package users import ( "encoding/json" "net/http" ) func getUsers(w http.ResponseWriter, r *http.Request) { users, err := getAllUsers() if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Header().Add("Content-Type", "application/json") json.NewEncoder(w).Encode(users) } func postUser(w http.ResponseWriter, r *http.Request) { var payload User err := json.NewDecoder(r.Body).Decode(&payload) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } user := User{ Id: payload.Id, Name: payload.Name, } err = insertuser(user) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } w.Write([]byte("OK")) } func NewUsersAPI() *http.ServeMux { initUsers() mux := http.NewServeMux() mux.HandleFunc("GET /", getUsers) mux.HandleFunc("POST /", postUser) return mux }