Kotlin
Uso de Kotlin 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 Kotlin. El ejemplo está pensado para Kotlin/JVM, por lo que funciona en Android, backend o aplicaciones de escritorio. Utiliza OkHttp y kotlinx.serialization, y envía la cabecera User-Agent para identificar el cliente.
Agrega las dependencias y el plugin de serialización a tu proyecto:
plugins {
kotlin("jvm") version "2.4.21"
kotlin("plugin.serialization") version "2.4.21"
}
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import okhttp3.OkHttpClient
import okhttp3.Request
import java.util.concurrent.TimeUnit
@Serializable
data class Indicador(
val fecha: String,
val valor: Double,
)
@Serializable
data class Resumen(
val uf: Indicador,
)
fun main() {
val client = OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build()
val request = Request.Builder()
.url("https://findic.cl/api/")
.header("User-Agent", "findic-docs-kotlin/1.0")
.header("Accept", "application/json")
.get()
.build()
try {
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) {
error("Error en la solicitud: ${response.code}")
}
val body = response.body?.string() ?: error("Respuesta vacía")
val json = Json { ignoreUnknownKeys = true }
val resumen = json.decodeFromString<Resumen>(body)
println("Fecha: ${resumen.uf.fecha}")
println("Valor UF: $ ${resumen.uf.valor}")
}
} catch (exception: Exception) {
println("Error en la solicitud: ${exception.message}")
}
}
En Android, recuerda agregar
<uses-permission android:name="android.permission.INTERNET" />en elAndroidManifest.xml.
Más información del objeto JSON entregado en el resumen aquí.