我试图弄清楚如何创建一个动态路由,在其中我可以查询我的struct的某些部分。 例如,假设我有以下结构。
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
感谢任何帮助!
答案 0 :(得分:1)
您可以使用问题中的查询参数,并将任何已知字段作为条件来缩小搜索范围。
实际搜索这些字段的方式取决于数据存储的位置/方式 - 你没有在你的问题中指明这一点,所以我不知道你是否要查询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
}
})
如果您提供有关数据存储方式的更多信息,我可以为您提供更具体的答案,以帮助您构建查询并检索匹配的记录。