APIs y datos abiertos
Valentina quiere que la aplicación de su liceo muestre en la pantalla de entrada la temperatura actual de Maldonado. No tiene un termómetro ni ganas de medirla a mano cada hora. ¿De dónde puede sacar ese dato, ya medido, y cómo hace para que su programa lo reciba?
La API: un intermediario entre programas
Cuando vas a un restaurante no entrás a la cocina. Le hacés el pedido al mozo, el mozo lo lleva a la cocina y vuelve con el plato. Vos no sabés cómo se cocina, solo sabés qué pedir y qué te van a traer.
Una API (interfaz de programación de aplicaciones) funciona igual: es el «mozo» que permite que un programa le pida datos o servicios a otro sin conocer cómo está hecho por dentro.
El intercambio siempre tiene dos momentos:
-
Petición: tu programa pide algo concreto («la temperatura de Maldonado»).
-
Respuesta: la API devuelve el resultado, en un formato que tu programa sabe leer.
¿Por qué sirve? Porque quien ofrece el servicio decide qué muestra y cómo, y quien lo usa no necesita saber nada de su base de datos interna. Si el servicio cambia por dentro, tu programa sigue funcionando mientras la API se mantenga igual.
Explicá qué es una API y por qué se dice que funciona como un «intermediario» entre dos programas. Podés usar como analogía el pedido que hacés en un restaurante.
Explicá qué es una API y por qué se dice que funciona como un «intermediario» entre dos programas. Podés usar como analogía el pedido que hacés en un restaurante.
Petición y respuesta paso a paso
Usar una API siempre sigue el mismo camino. Veámoslo con la aplicación del clima de Florencia.
Florencia está desarrollando una aplicación del clima para Maldonado y quiere mostrar la temperatura actual sin medirla ella misma. Describí en tres pasos cómo podría…
Florencia está desarrollando una aplicación del clima para Maldonado y quiere mostrar la temperatura actual sin medirla ella misma. Describí en tres pasos cómo podría usar una API externa para lograrlo, indicando qué envía su aplicación y qué recibe como respuesta.
Leer la respuesta: el formato JSON
Las respuestas de las APIs suelen venir en JSON, un texto ordenado en pares campo: valor. Se lee fácil tanto por personas como por programas.
{"ciudad": "Salto", "temperatura": 28, "unidad": "°C"}
Esta respuesta tiene tres campos:
| Campo | Valor | Tipo |
|---|---|---|
ciudad |
"Salto" |
texto |
temperatura |
28 |
número |
unidad |
"°C" |
texto |
Las llaves { } encierran el conjunto de datos, los textos van entre comillas y los pares se separan con comas. El programa pide cada dato por el nombre del campo; en Python, por ejemplo, respuesta["temperatura"] da 28.
Para mostrarlo al usuario, la aplicación combina los campos en una frase: «En Salto hay 28 °C».
Una API devuelve la respuesta en formato JSON con este contenido: {"ciudad": "Salto", "temperatura": 28, "unidad": "°C"}. Indicá qué datos contiene la respuesta, cuál es…
Una API devuelve la respuesta en formato JSON con este contenido: {"ciudad": "Salto", "temperatura": 28, "unidad": "°C"}. Indicá qué datos contiene la respuesta, cuál es el nombre de cada campo y de qué manera una aplicación podría mostrarlos en pantalla al usuario.
Datos abiertos (OpenData)
No todos los datos salen de una API. Muchos gobiernos y organizaciones publican datos abiertos: conjuntos de datos que cualquier persona puede usar.
Para ser realmente abiertos se piden tres cosas:
-
Acceso libre: sin pagar ni pedir permisos especiales.
-
Formato reutilizable: que un programa pueda leerlos (CSV, JSON), no solo una foto o un PDF escaneado.
-
Licencia abierta: que diga con claridad qué se puede hacer con ellos.
Ejemplos posibles: el listado de paradas de ómnibus de un gobierno departamental o un registro público de lluvias por departamento. No son datos abiertos los mensajes privados de tu celular: son datos personales, y publicarlos violaría tu privacidad.
Definí qué son los datos abiertos (OpenData) y mencioná dos características que deben tener para poder ser reutilizados por cualquier persona.
Definí qué son los datos abiertos (OpenData) y mencioná dos características que deben tener para poder ser reutilizados por cualquier persona.
Marcá cuáles de los siguientes ejemplos podrían ser una fuente de datos abiertos y cuáles no, justificando brevemente: el listado de paradas de ómnibus publicado por un…
Marcá cuáles de los siguientes ejemplos podrían ser una fuente de datos abiertos y cuáles no, justificando brevemente: el listado de paradas de ómnibus publicado por un gobierno departamental, los mensajes privados de un celular, un registro público de lluvias por departamento.
Qué revisar antes de usar un dato externo
Descargar un archivo no alcanza: antes de ponerlo en un proyecto conviene hacer tres comprobaciones.
| Qué revisar | Por qué importa |
|---|---|
| Licencia | Dice si podés usar los datos, si hay que citar la fuente y si se permite un uso comercial. Sin licencia clara, no sabés si podés usarlos. |
| Actualización | Un horario de ómnibus de hace tres años puede estar mal. Mirá la fecha de la última modificación. |
| Formato y estructura | Hay que saber si es CSV, JSON u otro, qué columnas tiene y cómo se escriben fechas, números y tildes. Si no, el programa no los lee bien. |
Bruno descargó un conjunto de datos abiertos con las líneas y horarios de ómnibus de Montevideo en un archivo CSV y quiere usarlo en su proyecto del liceo. Explicá qué…
Bruno descargó un conjunto de datos abiertos con las líneas y horarios de ómnibus de Montevideo en un archivo CSV y quiere usarlo en su proyecto del liceo. Explicá qué debería verificar antes de usarlo (por ejemplo, licencia, actualización y formato) y por qué cada punto es importante.
Integrar varias fuentes y elegir bien
Los proyectos reales suelen combinar fuentes. Un grupo quiere un mapa de lugares con wifi libre en Rocha y la cantidad de personas conectadas. Podría usar:
-
Datos abiertos con la ubicación de los puntos de wifi (un CSV, se descarga).
-
Una API de conexiones en tiempo real (se consulta cada tanto).
-
Una API de mapas para dibujar los puntos.
Combinarlas exige una clave común, por ejemplo el nombre o código de cada punto, para unir la ubicación con el número de conectados.
Problemas frecuentes:
-
Datos desactualizados: el archivo trae puntos que ya no existen.
-
Límites de uso: muchas APIs permiten un número máximo de consultas por hora o por día.
-
Formatos distintos: una fuente usa
laty otralatitud; una usa coma decimal y otra punto. -
Dependencia de terceros: si la API deja de funcionar, tu aplicación también.
Archivo descargado o API
| Archivo de datos abiertos | API en tiempo real | |
|---|---|---|
| Actualización | Tan vieja como la última descarga | Muy actual |
| Dependencia | Baja: una vez descargado, es tuyo | Alta: si cae el servicio, falla tu app |
| Costo | Generalmente gratis | Puede tener límites o planes pagos |
Para una aplicación que avisa a los conductores de Colonia del Sacramento sobre calles cortadas, lo importante es la actualización: una calle cortada hoy no sirve en la descarga de la semana pasada. Conviene la API en tiempo real, con un plan de respaldo (mostrar el último dato guardado si falla). Para datos que cambian poco, como la ubicación de las paradas, alcanza con un archivo.
Un grupo de estudiantes de 1.° de bachillerato quiere crear una aplicación que muestre en un mapa los lugares con wifi libre en Rocha y la cantidad de personas…
Un grupo de estudiantes de 1.° de bachillerato quiere crear una aplicación que muestre en un mapa los lugares con wifi libre en Rocha y la cantidad de personas conectadas. Planteá qué fuentes externas (APIs y datos abiertos) podrían integrar, cómo combinarían los datos y qué problemas podrían surgir, como datos desactualizados, límites de uso de la API o formatos distintos.
Compará dos formas de obtener la información del tránsito para una aplicación propia: descargar una vez por semana un archivo de datos abiertos, o consultar una API que…
Compará dos formas de obtener la información del tránsito para una aplicación propia: descargar una vez por semana un archivo de datos abiertos, o consultar una API que responde en tiempo real. Analizá ventajas y desventajas de cada opción en cuanto a actualización, dependencia de terceros y costo, y decidí cuál elegirías para una aplicación que avisa a los conductores de Colonia del Sacramento sobre calles cortadas.
Volviendo al principio: Valentina puede obtener la temperatura de Maldonado con una API del clima. Su aplicación envía una petición con la ciudad, recibe un JSON con el dato y lo muestra en pantalla.