Go
Uso de Go para obtener datos desde la API de indicadores.
A continuación se muestra el código de ejemplo para consultar a nuestra API desde el Lenguaje Go. El ejemplo utiliza la librería estándar net/http y envía la cabecera User-Agent para identificar el cliente.
package main
import (
"context"
"encoding/json"
"fmt"
"net/http"
"time"
)
type Indicador struct {
Fecha string `json:"fecha"`
Valor float64 `json:"valor"`
}
type Resumen struct {
UF Indicador `json:"uf"`
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
req, err := http.NewRequestWithContext(
ctx,
http.MethodGet,
"https://findic.cl/api/",
nil,
)
if err != nil {
fmt.Println("Error al crear la solicitud:", err)
return
}
req.Header.Set("User-Agent", "findic-docs-go/1.0")
req.Header.Set("Accept", "application/json")
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error en la solicitud:", err)
return
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
fmt.Println("Error en la solicitud:", resp.StatusCode)
return
}
var resumen Resumen
if err := json.NewDecoder(resp.Body).Decode(&resumen); err != nil {
fmt.Println("Error al decodificar el JSON:", err)
return
}
fmt.Println("Fecha:", resumen.UF.Fecha)
fmt.Printf("Valor UF: $ %.2f\n", resumen.UF.Valor)
}
Más información del objeto JSON entregado en el resumen aquí.