【问题标题】:Gorilla MUX routing with similar paths具有相似路径的 Gorilla MUX 路由
【发布时间】:2021-01-04 16:05:14
【问题描述】:

我在我的 golang api 中使用 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)

【问题讨论】:

  • 对 id 使用正则表达式
  • 先注册/settings。

标签: go gorilla


【解决方案1】:

使用解决方案Gorilla MUX routing with similar paths。我切换了顺序,现在我先注册设置。

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

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

【讨论】:

    【解决方案2】:

    对像 id /{id:[0-9]+} 这样的路由使用正则表达式,它将匹配数字。

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2015-04-05
      • 1970-01-01
      • 2016-04-07
      • 2016-04-26
      • 1970-01-01
      • 2015-04-18
      • 2014-12-16
      • 2021-06-05
      相关资源
      最近更新 更多