2013-08-29 28 views
4

我想在路由中有一個可選的URL變量。我似乎無法找到使用mux軟件包的方法。這是我目前的路線:如何使用gorilla mux創建可選url var的路由?

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,它仍然可以工作。思考?

回答

2

你可以根定義新HandleFunc/view路徑:

r.HandleFunc("/view", MakeHandler(RootHandler)) 

而且具有RootHandler功能做任何你需要這條道路。

6

註冊的處理程序進行第二次你想要的路徑:

r.HandleFunc("/view", MakeHandler(ViewHandler)) 

只要確保當你讓你檢查這種情況下您的增值經銷商:

vars := mux.Vars(r) 
id, ok := vars["id"] 
if !ok { 
    // directory listing 
    return 
} 
// specific view 
相關問題