Qué es una API
¿Cómo sabe una app del clima cómo estará el día? La app no mira al cielo: le pregunta a un servidor que tiene los datos del clima. Pero no lee una página web como lo haría una persona, sino que trae, en un formato fijo, solo los datos que necesita. La ventanilla acordada para que los programas intercambien datos así es la API.
Una pantalla para personas, una ventanilla para apps
En la lección anterior vimos que, cuando el navegador envía una petición, el servidor devuelve una respuesta. Lo que recibe una persona suele ser una página web, con textos, imágenes y botones bien colocados.
Eso es cómodo para la vista, pero para encontrar una sola temperatura ahí dentro, una app tendría que desmontar la pantalla entera. Por eso los programas no intercambian pantallas, sino datos que se pueden usar enseguida. La ventanilla preparada para eso se llama API.
Toca la pantalla para personas y la ventanilla para apps y compáralas. ¿Cuál le resulta más fácil de usar a una app?
La misma información puede tener formas distintas. A las personas se les da una pantalla arreglada para que se vea bien; a las apps, datos sin nada de sobra. La pantalla está hecha para que la lea una persona, y la ventanilla, para que la lea un programa.
Entonces, ¿cómo le habla una app a esa ventanilla? De hecho, muchas API usan el HTTP que acabas de ver: se envía una petición a una dirección fija y se recibe una respuesta. Eso sí, lo que debe llevar la petición lo fija de antemano cada ventanilla.
Pedir con un formato fijo
A una ventanilla no se le puede decir cualquier cosa. Hay que preguntar con el formato fijado de antemano, por ejemplo rellenando campos fijos como "ciudad: Seúl, dato: clima de hoy".
Es como pedir en un restaurante con los nombres exactos del menú. Si el pedido usa las palabras acordadas, la cocina se pone a cocinar enseguida sin confusiones. Una API también entiende solo las peticiones con el formato acordado, y a una petición que no encaja le responde que algo está mal.
Toca una petición acordada para enviarla a la API. Como el formato es fijo, la ventanilla la entiende enseguida.
Ya se envió la petición, así que ahora toca la respuesta. En lugar de una pantalla pensada para una persona, ¿con qué responde la API?
La respuesta llega como datos bien ordenados que la app puede usar enseguida. Sin adornos ni imágenes, solo con los valores necesarios, también ocupa poco. Despleguemos esos datos en el siguiente paso para ver qué forma tienen.
Responde con datos, no con una imagen
La respuesta de una API no es una imagen. Son datos en los que cada nombre va emparejado con un valor, por ejemplo temperatura 23 y cielo despejado. Cada valor tiene nombre, así que queda claro qué significa.
El formato más usado para escribir nombres emparejados con valores es JSON. Es tan sencillo que una persona puede leerlo, y a la vez es cómodo para los programas. La app toma de estos datos solo los valores que necesita y los dibuja en su propia pantalla.
Toca los datos para desplegarlos. No es una imagen, sino nombres y valores limpios (temperatura 23, soleado).
Como cada valor tiene nombre, la app no se confunde. Si necesita la temperatura, toma la temperatura; si necesita el estado del cielo, toma el estado del cielo. Si tuviera que sacar un número de una pantalla, un pequeño cambio en el diseño de la página podría hacer que leyera un valor equivocado.
Además, no hay una sola ventanilla así. Ventanillas de mapas, del clima, de pagos: el mundo está lleno de API abiertas. ¿Qué se puede construir usando dos o más a la vez?
Combinar ventanillas en un servicio nuevo
Cada ventanilla hace un solo trabajo. La de mapas da ubicaciones y mapas; la del clima, el clima.
Pero si se combinan las dos, aparece un servicio nuevo que muestra el clima de cada lugar sobre el mapa. Como quien encaja bloques, se juntan varias ventanillas para construir algo más grande. Muchas de las apps que usamos a diario están hechas así, combinando ventanillas de varias empresas.
Toca por turno la API de mapa y la API de clima para combinarlas. Juntas forman un servicio nuevo que muestra el clima sobre el mapa.
Cuando se juntaron los datos de las dos ventanillas, apareció algo que ninguna podía hacer sola. Ni el mapa ni el clima se construyeron desde cero: solo se tomaron prestadas ventanillas que ya existían y se unieron.
Por eso se pueden crear servicios nuevos rápido: en vez de reinventar la rueda, se usan piezas bien hechas. Quien abre la ventanilla necesita saber quién la usa y cuánto, así que muchas API piden que cada petición lleve una cadena única que funciona como una llave.
En resumen
En pocas palabras: las personas miran pantallas, pero los programas intercambian datos, y la ventanilla acordada para eso es la API.
Si pides con un formato fijo, responde no con una imagen, sino con datos hechos de nombres y valores. Si combinas varias ventanillas, tienes un servicio nuevo. Así no hace falta construirlo todo desde cero: se pueden tomar prestadas ventanillas que ya existen para crear algo nuevo.
Toca en orden los puntos clave para repasar. (ventanilla para apps → petición con formato fijo → respuesta en datos → combinar en un servicio nuevo)
Ahora ya sabes cómo intercambian datos las apps. Detrás de cada app que ves, muchas ventanillas trabajan en silencio. La próxima vez que abras una app del clima, puede ser divertido preguntarte de qué ventanilla sacó los datos esa pantalla.
Pero recuerda que HTTP no recuerda las peticiones anteriores. Entonces, ¿cómo te reconoce una tienda en línea, con tu sesión iniciada, en cada página? La próxima lección trata de la respuesta: las sesiones y las cookies.