我將 Go 與 http 一起使用,如下所示:mux := http.NewServeMux()mux.HandleFunc("/API/user", test)mux.HandleFunc("/authAPI/admin", auth)我想在每個 http 請求之前運行一個函數,更好的是,在每個包含 /authAPI/ 的請求上運行一個函數。我如何在 Go 中實現這一目標?
2 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
我將 Go 與 http 一起使用,如下所示:
mux := http.NewServeMux()
mux.HandleFunc("/API/user", test)
mux.HandleFunc("/authAPI/admin", auth)
我想在每個 http 請求之前運行一個函數,更好的是,在每個包含 /authAPI/ 的請求上運行一個函數。
我如何在 Go 中實現這一目標?

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
你可以只寫一個包裝函數:
func wrapHandlerFunc(handler http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, req *http.Request) {
// ...
// do something
// ...
handler(w, req)
}
}
并像這樣使用它:
mux.HandleFunc("/authAPI/admin", wrapHandlerFunc(auth))
mux據我所知,不支持為給定 URL 樹(子路由器,用語)下的所有內容自動運行它。
- 2 回答
- 0 關注
- 296 瀏覽
添加回答
舉報
0/150
提交
取消