package main import ( "encoding/json" "fmt" "net/http" "strconv" "github.com/gorilla/mux" ) type Routes []Route var routes = Routes{ Route{ "Index", "GET", "/", Index, }, Route{ "Recommendations", "GET", "/r/{userid}/{nrec}", Recommendations, }, Route{ "NewUser", "POST", "/user", NewUser, }, } //ROUTES func Index(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "ask for recommendations in /r") } func NewUser(w http.ResponseWriter, r *http.Request) { decoder := json.NewDecoder(r.Body) var newUser UserModel err := decoder.Decode(&newUser) check(err) defer r.Body.Close() saveUser(userCollection, newUser) fmt.Println(newUser) fmt.Fprintln(w, "new user added: ", newUser.ID) } func Recommendations(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) userid := vars["userid"] nrec, err := strconv.Atoi(vars["nrec"]) check(err) //now, get recommendations getRecommendations(userid, nrec) fmt.Fprintln(w, "recommendations") }