Cómo obtener una respuesta JSON de una solicitud HTTP GET en Go
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema que no he podido resolver durante varias horas. Necesito hacer una solicitud GET a una API externa que devuelve JSON y parsear esa respuesta en una struct.
Esto es lo que he intentado:
```go
package main
import (
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://api.example.com/data")
if err != nil {
fmt.Println("Error:", err)
}
defer resp.Body.Close()
fmt.Println(resp) // ¿Qué sigue?
}
```
El problema es que `resp` no es el JSON en sí, sino un objeto Response. No entiendo cómo extraer los datos de él a una struct. Intenté leer la documentación, pero hay mucho sobre `io.Reader` y `json.Decoder`, y me confundí.
Preguntas específicas:
1. ¿Cómo leer correctamente el cuerpo de la respuesta?
2. ¿Cómo convertir JSON a una struct de Go?
3. ¿Necesito manejar el código de estado de la respuesta?
4. ¿Qué hacer con los errores si la API devuelve algo que no es JSON?
Agradecería un ejemplo detallado con explicación.