Swift
Uso de Swift 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 Swift. El ejemplo utiliza URLSession y Codable, y envía la cabecera User-Agent para identificar el cliente.
import Foundation
struct Indicador: Decodable {
let fecha: String
let valor: Double
}
struct Resumen: Decodable {
let uf: Indicador
}
@main
struct FindicExample {
static func main() async {
guard let url = URL(string: "https://findic.cl/api/") else {
print("URL inválida")
return
}
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = [
"User-Agent": "findic-docs-swift/1.0",
"Accept": "application/json"
]
configuration.timeoutIntervalForRequest = 10
let session = URLSession(configuration: configuration)
do {
let (data, response) = try await session.data(from: url)
guard let httpResponse = response as? HTTPURLResponse,
httpResponse.statusCode == 200 else {
print("Error en la solicitud")
return
}
let resumen = try JSONDecoder().decode(Resumen.self, from: data)
print("Fecha: \(resumen.uf.fecha)")
print("Valor UF: $ \(resumen.uf.valor)")
} catch {
print("Error en la solicitud: \(error)")
}
}
}
El ejemplo utiliza
async/awaityURLSession.data(from:), disponibles desde iOS 15, macOS 12 y Swift 5.5.
Si compilas el ejemplo como un ejecutable de un solo archivo, agrega
-parse-as-libraryaswiftc; de lo contrario,@mainse considera código de nivel superior.
Más información del objeto JSON entregado en el resumen aquí.