2017-08-24 56 views
0

我想弄清楚如何創建一個動態路由,我可以查詢我的結構的某些部分。例如,假設我有以下結構。如何創建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

任何幫助表示讚賞

回答

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

如果你提供有關數據如何存儲更多的信息,我可以給你一個更具體的答案,幫助你建立你的查詢和檢索匹配記錄。

+0

非常感謝你的回覆,這真的很有幫助。目前,我正在使用MySQL數據庫並使用MySQL驅動程序設置適當的連接。 – JustPlainGoat

+0

我最終找到了你的幫助,謝謝! – JustPlainGoat