我想在路由中有一个可选的URL变量。我似乎找不到使用多路复用包的方法。下面是我当前的路由:
func main() {
r := mux.NewRouter()
r.HandleFunc("/view/{id:[0-9]+}", MakeHandler(ViewHandler))
http.Handle("/", r)
http.ListenAndServe(":8080", nil)
}
当url是localhost:8080/view/1
时它可以工作。我希望它即使没有id
也能接受,这样如果我输入localhost:8080/view
它仍然可以工作。
3条答案
按热度按时间but5z9lq1#
使用所需路径再次注册处理程序:
只是要确保当你得到你的VAR,你检查这个案例:
xxb16uws2#
您可以为根
/view
路径定义一个新的HandleFunc
:并让
RootHandler
函数执行该路径所需的任何操作。9gm1akwq3#
您可以使用
?
字符来指示id:[0-9]+
模式是可选的,并在ViewHandler
函数中无论是否传递了id
时进行处理。main
:ViewHandler
: