1 回答

TA貢獻1893條經驗 獲得超10個贊
創建一個設置 mux var 的處理程序包裝器:
type setVarWrapper struct {
fn func(http.ResponseWriter, *http.Request)
name string
value string
}
func (h *setVarWrapper) ServeHTTP(w http.ResponseWriter, r *http.Request) {
mux.Vars(req)[h.name] = h.value
h.fn(w, r)
}
包裝用戶控制器:
router.Handle("/_Users, &setVarWrapper{fn:controller.AddResource, name:"resourceName", value:"_User"})
一個更簡單的選擇是編寫一個 AddUser 函數來調用通用控制器:
function addUser(req *http.Request, w http.ResponseWriter){
mux.Vars(req)["resourceName"] = "_User"
controller.AddResource(w, req)
}
router.HandleFunc("/_Users", addUser)
也許更簡單的是在處理程序中檢查“”:
function AddResource(req *http.Request, w http.ResponseWriter){
vars := mux.Vars(req)
resourceName := vars["resourceName"]
if resourceName == "" {
resourceName = "_User"
}
data = request.Body
AddDataToResource(resourceName, data)
}
- 1 回答
- 0 關注
- 202 瀏覽
添加回答
舉報