Я использую Gorilla Mux для обработки моих HTTP-маршрутов для моего REST API. Я использую следующую привязку для своего API:
r := mux.NewRouter()
r.Host(baseUrl)
api := r.PathPrefix("/api").Subrouter()
api.HandleFunc("/users", APIUsers).Methods("GET", "POST")
http.Handle("/", r)
http.ListenAndServe(":8083", nil)
Затем я делаю CURL следующим образом:
$ curl -i -X PUT http://127.0.0.1:8083/api/users
Метод APIUsers
не вызывается, как ожидалось. Я получаю 200 OK
в ответ:
HTTP/1.1 200 OK
Date: Tue, 30 Dec 2014 19:03:59 GMT
Content-Length: 0
Content-Type: text/plain; charset=utf-8
Должен ли я сделать это по-другому с Gorilla, чтобы, скажем, привязать все сбойные функции к назначенной функции? Также мне интересно, какой типичный HTTP-код возвращает неподдерживаемые функции. Я предполагаю, что код находится в диапазоне 400
, но я не уверен, какой использовать. Я не хочу, чтобы это было 200
, хотя запрос не был "OK
".
Есть идеи и советы на эту тему?
http.NotFoundHandler()
, когда маршрут не соответствует. Вы указали NotFoundHandler дляRouter
? - person jmaloney   schedule 31.12.2014