Soy bastante nuevo en Go y todavía no lo entiendo todo. En muchos de los lenguajes modernos Node.js, Angular, jQuery, PHP, puede hacer una solicitud GET con parámetros de cadena de consulta adicionales.
Hacer esto en Go no es tan simple como parece, y todavía no puedo resolverlo. Realmente no quiero tener que concatenar una cadena para cada una de las solicitudes que quiero hacer.
Aquí está el script de muestra:
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))
}
En este ejemplo, puede ver que hay una URL, que requiere una variable GET de api_key con su clave api como valor. El problema es que esto se codifica de forma rígida en forma de:
req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular?api_key=mySuperAwesomeApiKey", nil)
¿Hay alguna forma de construir esta cadena de consulta de forma dinámica? Por el momento, necesitaré ensamblar la URL antes de este paso para obtener una respuesta válida.