【问题标题】:Routing in Golang using only stdlibGolang 中的路由仅使用 stdlib
【发布时间】:2020-04-19 17:16:21
【问题描述】:

最近我开始了一个学校项目,我需要只使用标准 Go 库制作一个网络论坛。我遇到的主要障碍是我不知道如何正确地进行路由。例如:

router.HandleFunc("/threads", threadsHandler)
router.HandleFunc("/threads/", postsHandler)

如果我只有 2 条路线也没关系。但我希望能够处理更复杂的路线,例如:

"/threads/{thread_name}/posts"

在不使用 Gorilla/Mux 的情况下如何做到这一点?

【问题讨论】:

  • 在应用程序中编写调度逻辑您的代码。在/threads/ 的处理程序中,检查请求 URL 路径并根据该路径进行调度。
  • 你可以在这里github.com/aquasecurity/lmdrouter/blob/…查看路由是如何完成的。您可以根据自己的要求构建类似的东西。
  • 使用一些“编程”并没有错。并非所有事情都必须通过调用某个包来完成。

标签: go routing routes mux


【解决方案1】:

只需使用 HTTP 包来处理这种情况。所以这个包提供了 HTTP 客户端和服务器实现。所以我认为这会对你有所帮助。

func main() {
   http.HandleFunc("/threads/{thread_name}/posts",threadsHandler)   
   log.Fatal(http.ListenAndServe(":8080", nil))
 } 

你可以去https://golang.org/pkg/net/http这个链接了解更多详情

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 2020-06-27
    • 2017-08-23
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 2016-10-31
    • 2023-01-15
    相关资源
    最近更新 更多