我使用的是mux軟件包,似乎工作得很好,除了它似乎不支持複雜的路由或至少我不明白它是如何做到的。 我有幾個途徑如下:golang多路複用器,路由通配符和自定義func匹配
router := mux.NewRouter()
router.HandleFunc("/{productid}/{code}", product)
router.HandleFunc("/{user}", userHome)
router.HandleFunc("/search/price", searchPage)
所以我有兩個問題:
我如何定義一個通配符路徑,例如/搜索/價格/ *,這樣的請求,例如/搜索/價格/ 29923 /憤怒/ 200 /顏色=紅色可以匹配嗎?
是否可以向現有路線添加自定義條件?例如如果路線是
/{productid}/{code}
且功能x返回true
,則使用此handlerTrue
,如果它返回false
使用handlerFalse
。
我試着像.MatcherFunc(myfunction(ip)bool)
添加了一些路線,但它抱怨路由器有沒有這樣的方法。
目前我正在處理處理程序中的'自定義'條件。
undefined:RouteMatch,不能在函數參數 – themihai
中使用myfunction(,* RouteMatch)(類型bool)作爲類型mux.MatcherFunc我修正了我的示例。我也強烈推薦閱讀Gorilla Mux docs,它有一個類似的例子,介紹如何在頁面的一半處編寫一個MatcherFunc:http://www.gorillatoolkit.org/pkg/mux –
elithrar
我在閱讀文檔之前發佈這個問題。我認爲你的答案基本上是從文檔複製,除了ip功能。 – themihai