main.go에서 모든 웹 요청을 라우터가 처리하도록 수정
모든 웹 요청을 라우터가 받아 처리하도록 웹 애플리케이션을 구동하는 소스를 수정해 보자.
▼ main.go
package main import ( “fmt” “net/http” ) func main() { r := &router{make(map[string]map[string]http.HandlerFunc)}
r.HandleFunc(“GET”, ”/”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “welcome!”) })
r.HandleFunc(“GET”, ”/about”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “about”) })
r.HandleFunc(“GET”, ”/users/:id”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “retrieve user”) })
r.HandleFunc(“GET”, ”/users/:user_id/addresses/:address_id”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “retrieve user’s address”) }) r.HandleFunc(“POST”, ”/users”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “create user”) })
r.HandleFunc(“POST”, ”/users/:user_id/addresses”, func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, “create user’s address”) })
http.ListenAndServe(“:8080”, r) }