Las API REST permiten que diferentes aplicaciones se comuniquen entre sí a través de Internet. Un cliente (sitio web, aplicación móvil, aplicación de escritorio etc.) puede enviar una solicitud a una API REST para obtener o modificar datos, y la API responde con la información solicitada.
Spring Boot facilita enormemente la creación de API REST, ya vimos como crear páginas dinámicas en el servidor.
Crear páginas renderizadas en el servidor con Spring Boot y desarrollar API REST son dos enfoques diferentes para construir aplicaciones .
Renderización en el servidor: En este enfoque, las páginas web se generan dinámicamente en el servidor antes de ser enviadas al navegador del cliente. El servidor ejecuta código Java (Spring Boot) para generar la página HTML final basada en plantillas (Thymeleaf) y datos recuperados de la base de datos.
Menos carga en el cliente: El navegador del cliente solo necesita representar las páginas HTML ya generadas, lo que puede reducir la carga de trabajo del cliente y mejorar el rendimiento percibido, especialmente en dispositivos con recursos limitados.
Experiencia del usuario más tradicional: Las páginas renderizadas en el servidor a menudo ofrecen una experiencia de usuario más tradicional, con páginas completas que se cargan y actualizan con cada solicitud, lo que puede ser adecuado para aplicaciones donde la navegación tradicional de páginas es preferible.
Transferencia de datos: En lugar de generar páginas HTML completas, una API REST proporciona un conjunto de puntos finales (endpoints) que permiten a los clientes acceder y manipular datos en el servidor. Estos datos generalmente se transfieren en formato JSON.
Separación de responsabilidades: Una API REST se centra en proporcionar acceso a datos y funcionalidades del servidor, mientras que la interfaz de usuario (UI) se implementa por separado en el cliente (por ejemplo, una aplicación web frontend, una aplicación móvil, una aplicación de escritorio etc).
Más flexible y escalable: Las API REST permiten una mayor flexibilidad y escalabilidad al separar la presentación de los datos y la lógica del negocio del servidor. Esto facilita la construcción de aplicaciones que pueden ser utilizadas por múltiples clientes (como aplicaciones web, móviles o de escritorio) y que pueden escalar más fácilmente a medida que aumenta la demanda.
Experiencia de usuario más dinámica: Las aplicaciones que consumen una API REST suelen ofrecer una experiencia de usuario más dinámica, con interfaces de usuario interactivas que pueden actualizar partes específicas de la página sin necesidad de recargarla por completo. Esto puede ser más adecuado para aplicaciones donde la interactividad y la respuesta en tiempo real son importantes.
Todos los países https://restcountries.com/v3.1/all
Un país https://restcountries.com/v3.1/name/{name}
Todos los países con un idioma comúnhttps://restcountries.com/v3.1/lang/{language}
Como podemos comprobar es una forma de servir información que puede ser procesada muchas aplicaciones cliente (página web, aplicación móvil, aplicación de escritorio) y decir como desplegar en el dispositivo dicha información.
Es importante tener en cuenta que las API REST deben ser procesadas por una aplicación cliente para desplegar la información y no tiene sentido mostrar directamente el resultado a un usuario ya que solo verá un archivo JSON:
Existen miles de sitios que proveen APIs sobre diversos temas, algunas APIs son gratuitas otras son pagas, ya que requieren mantenimiento, imaginemos los costos de los sitios que proveen la temperatura en tiempo real de diferentes regiones y países.
Podemos consultar otros sitios que proveen APIs en https://github.com/public-apis/public-apis .
A partir del próximo concepto veremos como crear API REST con Spring Boot.