ฉันค่อนข้างใหม่สำหรับ Go และยังไม่ค่อยเข้าใจทุกอย่าง ในหลายภาษาสมัยใหม่ Node.js, Angular, jQuery, PHP คุณสามารถส่งคำขอ GET พร้อมพารามิเตอร์สตริงการสืบค้นเพิ่มเติมได้
การทำสิ่งนี้ใน Go ไม่ใช่เรื่องง่ายอย่างที่คิดและฉันก็ยังคิดไม่ออกเหมือนกัน ฉันไม่ต้องการที่จะต้องเชื่อมสตริงสำหรับแต่ละคำขอที่ฉันต้องการทำ
นี่คือสคริปต์ตัวอย่าง:
package main
import (
    "fmt"
    "io/ioutil"
    "net/http"
)
func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil)
    req.Header.Add("Accept", "application/json")
    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Errored when sending request to the server")
        return
    }
    defer resp.Body.Close()
    resp_body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(resp.Status)
    fmt.Println(string(resp_body))
}
ในตัวอย่างนี้คุณจะเห็นว่ามี URL ซึ่งต้องใช้ตัวแปร GET ของ api_key พร้อมกับคีย์ api ของคุณเป็นค่า ปัญหาคือสิ่งนี้กลายเป็นรหัสยากในรูปแบบของ:
req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular?api_key=mySuperAwesomeApiKey", nil)
มีวิธีสร้างสตริงแบบสอบถามนี้แบบไดนามิกหรือไม่? ในขณะนี้ฉันจะต้องรวบรวม URL ก่อนขั้นตอนนี้เพื่อให้ได้รับคำตอบที่ถูกต้อง