如何创建动态路线

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
  }
})

如果您提供有关数据存储方式的更多信息,我可以为您提供更具体的答案,帮助您构建查询并检索匹配记录。