Я использую гориллу веб-инструментарий и golang, и имею следующий кодКак правильно сопоставить шаблон с маршрутизаторами handleFunc?
func test(w http.ResponseWriter, r *http.Request) {
fmt.Println("test was called ..")
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
mx := mux.NewRouter()
mx.HandleFunc(?, test)
http.ListenAndServe(":8080", mx)
}
Мой сервер будет служить HTML-документ с формой, которая будет делать GET-запрос и отправить «/? ID = { что нибудь}". Как настроить шаблон в файле mx.HandleFunc для соответствия запросу, чтобы вызвать вызов?
Я попытался:
"/?id={something},
"/?id=",
mx.HandleFunc("/", test).Queries("id")
mx.HandleFunc("/", test).Methods("POST")
(последний один я изменил соответствующий код страницы, так что форма делает пост вместо этого).
Я прочитал godoc и пробовал это: mx.HandleFunc ("/", test) .Queries ("id", "bar"). Я печатаю r.URL.String() из запроса и получаю «/? Id = bar», но он переходит только на frontPage-func (mx.HandleFunc («/», frontPage). Я ожидал, что он будет звонить test(), так как это был запрос или оба теста() frontPage(), поскольку он подходит для обоих шаблонов. – stian
Ahhh, я думаю, что знаю, что происходит. Это проблема с handleFuncs, которая является проблемой. default case "/" first (который также соответствует (и ловит) "/? id =")), поэтому, изменяя порядок работы, в любом случае спасибо. – stian