¿Qué es una API REST?

Definición Directa
Una API REST (Interfaz de Programación de Aplicaciones bajo Transferencia de Estado Representacional) es un servicio web que sigue los principios de la arquitectura REST. Utiliza los métodos HTTP estándar para exponer recursos identificados por URLs, permite una comunicación sin estado entre cliente y servidor, y devuelve representaciones de esos recursos generalmente en JSON o XML.
Analogía
Imagina que visitas una biblioteca muy organizada. Cada libro tiene un código único en el lomo (una URL), y para interactuar con él solo usas cinco verbos básicos: consultar su ficha, añadir uno nuevo, actualizar su estado, retirarlo o devolverlo. No necesitas saber cómo está ordenada la trastienda. Una API REST funciona igual: te expone recursos (libros) a través de endpoints claros, y con los verbos GET, POST, PUT y DELETE realizas todas las operaciones necesarias sin conocer la base de datos interna.
Importancia o Uso Real
La mayoría de las apps que usas a diario (clima, redes sociales, banca móvil) se comunican con sus servidores mediante APIs RESTful. Cuando deslizas para actualizar el feed de noticias, tu aplicación hace una petición GET a un endpoint; al publicar una foto, ejecuta un POST. Su simplicidad y uso de HTTP permiten que cualquier lenguaje de programación (Python, JavaScript, Java) pueda consumir estos servicios, lo que la ha convertido en el pegamento universal de la web moderna.
Características o Requisitos
- Cliente-servidor desacoplado: Separa la interfaz de usuario de la lógica de negocio, permitiendo que ambos evolucionen independientemente.
- Sin estado (stateless): Cada petición contiene toda la información necesaria; el servidor no guarda sesión del cliente, lo que facilita la escalabilidad.
- Interfaz uniforme: Identifica recursos mediante URIs, usa verbos HTTP estándar y devuelve representaciones auto-descriptivas con enlaces (HATEOAS opcional).
- Sistema de capas: Admite intermediarios como proxies o balanceadores de carga sin que el cliente perciba cambios en la respuesta final