如何创建动态路线
How to create route which is dynamic
我想知道如何创建一个动态路由,我可以在其中查询我的结构的某些部分。
例如,假设我有以下结构。
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"`
}
现在,我将如何创建一条路线,例如
localhost:1234/news?title="sometitle"&source="somesource
您可以像在您的问题中那样使用查询参数,并将任何已知字段作为标准来处理以缩小搜索范围。
您实际搜索这些字段的方式取决于您的数据存储位置/方式 - 您没有在问题中指定这一点,所以我不知道您是否要查询 MongoDB , 一个 SQL 数据库, 一个内存中的地图...
您可以按如下方式迭代查询参数:
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
}
})
如果您提供有关数据存储方式的更多信息,我可以为您提供更具体的答案,帮助您构建查询并检索匹配记录。
我想知道如何创建一个动态路由,我可以在其中查询我的结构的某些部分。 例如,假设我有以下结构。
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"`
}
现在,我将如何创建一条路线,例如
localhost:1234/news?title="sometitle"&source="somesource
您可以像在您的问题中那样使用查询参数,并将任何已知字段作为标准来处理以缩小搜索范围。
您实际搜索这些字段的方式取决于您的数据存储位置/方式 - 您没有在问题中指定这一点,所以我不知道您是否要查询 MongoDB , 一个 SQL 数据库, 一个内存中的地图...
您可以按如下方式迭代查询参数:
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
}
})
如果您提供有关数据存储方式的更多信息,我可以为您提供更具体的答案,帮助您构建查询并检索匹配记录。