如何使用 gorilla mux 创建带有可选 url var 的路由?

我想在路由中有一个可选的 URL 变量。我似乎找不到使用 mux 包的方法。这是我目前的路线:


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它仍然可以工作。想法?


明月笑刀无情
浏览 159回答 2
2回答

一只名叫tom的猫

您可以HandleFunc为根/view路径定义一个新的:r.HandleFunc("/view", MakeHandler(RootHandler))并让该RootHandler函数执行该路径所需的任何操作。

慕的地10843

使用您想要的路径再次注册处理程序:r.HandleFunc("/view", MakeHandler(ViewHandler))只要确保在获取 vars 时检查这种情况:vars := mux.Vars(r)id, ok := vars["id"]if !ok {  // directory listing  return}// specific view
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go