Sono abbastanza nuovo su Go e non ho ancora capito tutto. In molti dei linguaggi moderni Node.js, Angular, jQuery, PHP è possibile eseguire una richiesta GET con parametri di stringa di query aggiuntivi.
Fare questo in Go non è così semplice come sembra, e non riesco ancora a capirlo. Non voglio davvero dover concatenare una stringa per ciascuna delle richieste che voglio fare.
Ecco lo script di esempio:
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))
}
In questo esempio puoi vedere che c'è un URL, che richiede una variabile GET di api_key con la tua chiave api come valore. Il problema è che questo diventa hard coded sotto forma di:
req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular?api_key=mySuperAwesomeApiKey", nil)
C'è un modo per costruire dinamicamente questa stringa di query? Al momento dovrò assemblare l'URL prima di questo passaggio per ottenere una risposta valida.