我正在使用mux包,它似乎工作得很好,只是它似乎不支持复杂的路由,或者至少我不明白它是如何工作的。我有以下几条路线:
router := mux.NewRouter()
router.HandleFunc("/{productid}/{code}", product)
router.HandleFunc("/{user}", userHome)
router.HandleFunc("/search/price", searchPage)
所以我有两个问题:
如何定义通配符路由,例如 /search/price/* 以便 /search/price/29923/rage/200/color=red 等请求可以匹配?
是否可以将自定义条件添加到现有路线?例如,如果路由是
/{productid}/{code}
并且函数 x 返回true
,则使用 thishandlerTrue
,如果返回则false
使用handlerFalse
。
我试图 .MatcherFunc(myfunction(ip)bool)
在路由中添加类似的东西,但它抱怨路由器没有这样的方法。
目前我正在处理处理程序中的“自定义”条件。