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`