【问题标题】:How to map to the same function with a pattern that ends with or with "/" with http.HandleFunc如何使用 http.HandleFunc 以“/”结尾或以“/”结尾的模式映射到相同的函数
【发布时间】:2020-02-12 16:43:00
【问题描述】:

我正在使用 golang net/http 函数 http.HandleFunc 将 URL 模式与函数相关联。

我想知道有没有比做更好的事情

http.HandleFunc("/foo", fooFunc)
http.HandleFunc("/foo/", fooFunc)
http.HandleFunc("/bar", barFunc)
http.HandleFunc("/bar/", barFunc)

将 fooFunc 匹配到 "/foo""/foo/" 端点等 bar

作为奖励,我如何将 foo 函数限制为仅例如 GET 请求。

(谢谢!)

【问题讨论】:

  • 一个更好的解决方案:只需注册一个带有斜杠的路径,您就可以“免费”获得另一个路径。引用http.ServeMux: “如果一个子树已经被注册并且接收到一个请求命名子树根没有它的尾部斜杠,ServeMux 将该请求重定向到子树根(添加尾部斜杠)。”
  • @icza 太棒了,谢谢。供参考:文档可以在这里找到:golang.org/pkg/net/http/#ServeMux

标签: go


【解决方案1】:

一个更好的解决方案:只需注册一个带有斜杠的路径,然后您就可以“免费”获得另一个路径。

引用http.ServeMux:

如果子树已注册并且收到了一个请求,该请求命名了没有尾部斜杠的子树根,ServeMux 将该请求重定向到子树根(添加尾部斜杠)。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    相关资源
    最近更新 更多