如何在Golang中处理动态URL

时间:2017-07-30 07:53:53

标签: go

我正在创建一个Go网络应用,我需要处理像/ person /(any_name)这样的网址。作为Golang的新手,我不知道该怎么做。请帮帮我。

2 个答案:

答案 0 :(得分:2)

您应该考虑使用gorilla / mux包来实现您的目标。 包github的摘录显示https://github.com/gorilla/mux

r := mux.NewRouter()
r.HandleFunc("/products/{key}", ProductHandler)
r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler)
r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler)

答案 1 :(得分:1)

如果你看看这个页面https://golang.org/doc/articles/wiki/,我认为你所追求的是一些例子。

您需要一个名为person的处理程序,然后解压缩(any_name)并相应地处理每个人。其中一个例子展示了如何用标题做同样的原则。

func viewHandler(w http.ResponseWriter, r *http.Request) {
    title := r.URL.Path[len("/view/"):]
    p, _ := loadPage(title)
    t, _ := template.ParseFiles("view.html")
    t.Execute(w, p)
}

而不是/ view /你得到的/ person /和title就是你所拥有的(any_name)。

r.URL.Path[len("/view/"):]将从r.URL.Path获取所有内容,但会从len("/view/")个字节开始进入切片。