func productHandler(w http.ResponseWriter, r *http.Request) {
key := r.URL.Path[len("/products/"):]
switch r.Method {
case "GET":
// do GET stuff
case "POST":
// Fo POST stuff
default:
http.Error(w, "Method Not Allowed", 405)
}
}
type server struct {
container *someContainer
router *someRouter
}
func (s *server) product() http.HandlerFunc {
type getRequest struct {
Name string
}
type getResponse struct {
Greeting string `json:"greeting"`
}
get := func(r *http.Request) () {
}
GET /products
POST /products
GET /products/10
PUT /products/10
return func(w http.ResponseWriter, r *http.Request) {
key := r.URL.Path[len("/products/"):]
switch r.Method {
case "GET":
data, err := parseGet(r)
s.container.Get
case "POST":
// Fo POST stuff
default:
http.Error(w, s.template.NotAllowed(), 405)
}
}
}