Avatar ·

Como fazer uma requisição GET e montar uma QueryString corretamente em Go?

Olá a todos! Sou novo em Go e estou tentando fazer uma requisição GET para uma API que requer parâmetros na query string. Por exemplo, preciso enviar uma requisição para `https://api.example.com/search?q=golang&page=1&limit=10`. Tentei fazer isso manualmente, apenas concatenando a string, mas parece horrível e, aparentemente, errado: ```go package main import ( "fmt" "io/ioutil" "net/http" ) func main() { url := "https://api.example.com/search?q=" + "golang" + "&page=" + "1" + "&limit=" + "10" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) } ``` Primeiro, isso não é seguro: se o parâmetro `q` tiver espaços ou caracteres especiais (por exemplo, `golang & go`), a URL quebrará. Segundo, o código fica sujo e difícil de manter, especialmente quando há muitos parâmetros. Sei que em outras linguagens (por exemplo, em Python existe `urllib.parse`