在this Blake Mizerany的Golang講話的Youtube視頻(在15:29左右),他談到了如何在不使用第三方包的情況下構建路由器,如何構建一個具有可變組件的路由,比如一個id。這是他使用,以顯示如何獲取路線的可變部分的第一行處理程序(即鑰匙)在沒有第三方路由庫的情況下路由PUT請求
func productHandler(w http.ResponseWriter, r *http.Request){
key := r.URL.Path[len("/products/":]
switch r.Method{
case "GET":
//do stuff
case "POST"
//do stuff
default:
http.Error(w, "method not allowed", 405)
}
}
這不是從他的介紹,雖然他有什麼實際的路線看起來清晰。
我正在嘗試構建一個處理帶有id的放置請求的路由。當我點擊我的頁面上的元素,它發送一個PUT請求到這條路線
http://localhost:8080/products/1433255183951
我有這樣
http.HandleFunc("/products/{id}", doSomethingWithProduct){
}
當然路線有FUNC
func doSomethingWithProduct(res http.ResponseWriter, req *http.Request{
key := req.URL.Path[len("/products/"):]
log.Println(key, "is this logging?? nope")
}
問題。即使我已經設置了路由和處理程序,當我點擊元素時我找不到404,但沒有跡象表明我的函數被調用(即它不記錄)
問題:如何創建一個處理一個PUT請求
http://localhost:8080/products/1433255183951
,你和JimB都回應了「5分鐘前」。我不知道誰會接受,所以我會拋硬幣。不過,我投了你們兩個。 – BrainLikeADullPencil