如何创建Mux/Golang中动态的路由?
问题描述:
我想弄清楚如何创建一个动态路由,我可以查询我的结构的某些部分。例如,假设我有以下结构。如何创建Mux/Golang中动态的路由?
type News struct {
Id int64 `json:"id"`
Category string `json:"category"`
ImageUrl string `json:"image_url"`
Title string `json:"title"`
Description string `json:"description"`
Source string `json:"source"`
}
现在,我将如何创建一个路由,如...
本地主机:?!1234 /新闻标题= “sometitle” &源=“somesource
任何帮助表示赞赏
答
您可以使用查询参数在您的问题中,并处理任何已知字段作为标准来缩小您的搜索范围
您实际上的方式这些字段取决于数据存储的位置/方式 - 你没有在你的问题中指定这个,所以我不知道你是否要查询MongoDB,SQL DB,内存中的地图......
可以遍历您的查询参数如下:
http.HandleFunc("/news", func(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
for field, values := range params {
value := values[len(values)-1] // the last given value of this type
// gradually build your query using field/value
}
})
如果你提供有关数据如何存储更多的信息,我可以给你一个更具体的答案,帮助你建立你的查询和检索匹配记录。
非常感谢你的回复,这真的很有帮助。目前,我正在使用MySQL数据库并使用MySQL驱动程序设置适当的连接。 – JustPlainGoat
我最终找到了你的帮助,谢谢! – JustPlainGoat