我正在開發一個 Web 服務應用程序,其端點/加密貨幣/匯率接受兩個貨幣“符號”作為輸入。Web 服務應在數據庫中搜索這些字符之間的貨幣兌換數據,如果數據庫中沒有值,或者時間戳值與當前值相差超過 1 分鐘,則向服務 API 發出請求:https : //min-api.cryptocompare.com/documentation 因此,我創建了結構體和 go-chi 路由器。但我不知道如何構建一個工作處理程序來從 URL 獲取參數,例如: https: //min-api.cryptocompare.com/data/price ?fsym=BTC&tsyms=USDpackage mainimport ( "github.com/go-chi/chi" "net/http")type Crypto struct { Cur1 string Cur2 string Rate float64 Timestamp int64}func main() { port := ":3000" r := chi.NewRouter() r.Get("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Connected")) }) http.ListenAndServe(port, r)我想我可以嘗試為處理程序主體上的第一個值創建 Cur1:cur1 = r.FormValue("cur1")同樣對于第二個值:Cur2 = r.FormValue("cur2") 最終請求將是:~/get_rates?cur1=eth&cur2=btc
1 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
您可以通過調用 getter 從請求中提取查詢參數r.URL.Query().Get("paramName")
為您的任務提取 cur1 和 cur2 將如下所示:
r.Get("/get_rates", func(w http.ResponseWriter, r *http.Request) {
cur1 := r.URL.Query().Get("cur1")
cur2 := r.URL.Query().Get("cur2")
w.Write([]byte("cur1=" + cur1 + "; cur2=" + cur2))
})
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消