で始まる一つの方法がある/general/baz/bro
パスを扱うbazBroHandlerを期待し、そしてたDefaultHandlerた
r.Methods("GET").PathPrefix("/general").Handler(defaultHandler)
r.Methods("GET").Path("/general/baz/bro").Handler(bazBroHandler)
MatcherFuncを使用してください。 MatcherFunc
では、すなわち、着信要求Path
を検証/比較:
//Default handler
r.MatcherFunc(func(r *http.Request, rm *mux.RouteMatch) bool {
return r.URL.Path != "/general/baz/bro" && strings.HasPrefix(r.URL.Path, "/general") && r.Method == "GET"
}).Handler(defaultHandler)
//Specific handler
r.Methods("GET").Path("/general/baz/bro").Handler(bazBroHandler)
regexpを試すことができます。私は、それは理想的な方法ではないと思うが、おそらく助けることができます: 'get:= repo.Methods(" GET ")Subrouter()' 'get.Handle("/general/baz/bro "、bazBroHandler) ' 'get.Handle("/general/{unknown:[0-9A-Za-z] +} "、defaultHandler)' – bayrinat