具有相似路径的Gorilla MUX路由

具有相似路径的Gorilla MUX路由,go,gorilla,Go,Gorilla,我在GolangAPI中使用Gorilla mux进行路由。我有两个类似的路径:/users/{id}和/users/settings。当我调用/users/settings端点时,它被路由到端点/users/{id}。我该如何解决这个问题 router := mux.NewRouter() router.HandleFunc("/users/{id}", usersController.GetUserDetail).Methods(http.MethodGet) route

我在GolangAPI中使用Gorilla mux进行路由。我有两个类似的路径:
/users/{id}
/users/settings
。当我调用/users/settings端点时,它被路由到端点
/users/{id}
。我该如何解决这个问题

router := mux.NewRouter()
router.HandleFunc("/users/{id}", usersController.GetUserDetail).Methods(http.MethodGet)
router.HandleFunc("/users/settings", usersController.GetSettings).Methods(http.MethodGet)

将regexp用于类似于id的路由
/{id:[0-9]+}
它将匹配数字。

使用解决方案。我切换了顺序,现在我先注册设置

router.HandleFunc("/users/settings", usersController.GetSettings).Methods(http.MethodGet)

router.HandleFunc("/users/{id}", usersController.GetUserDetail).Methods(http.MethodGet)

首先为idRegister/settings使用正则表达式。