【发布时间】:2014-03-07 00:48:22
【问题描述】:
我正在使用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,使用这个handlerTrue,如果它返回false使用handlerFalse。
我尝试在路由中添加类似.MatcherFunc(myfunction(ip)bool) 的内容,但它抱怨路由器没有这样的方法。
目前我正在处理程序中处理“自定义”条件。
【问题讨论】:
-
标题应该会提到它是gorilla mux,因为go stdlib中有mux,所以标题有点混乱。