【问题标题】:How to create route which is dynamic如何创建动态的路线
【发布时间】:2017-08-24 06:30:46
【问题描述】:

我试图弄清楚如何创建一个动态路由,我可以在其中查询我的结构的某些部分。 例如,假设我有以下结构。

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

【问题讨论】:

    标签: go mux


    【解决方案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
      }
    })
    

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

    【讨论】:

    • 非常感谢您的回复,这真的很有帮助。目前,我正在使用 MySQL 数据库,并使用 MySQL 驱动程序设置了适当的连接。
    猜你喜欢
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多