¿Qué es una API?
API significa Interfaz de programación de aplicaciones, y es un conjunto de funciones que permite a las aplicaciones acceder a datos e interactuar con componentes de software externos, sistemas operativos o microservicios.
En palabras simples, una API es como un mozo en un restaurante. No entramos en un café y caminamos directamente a la cocina para decirle al chef lo que queremos comer. El mozo hace eso por nosotros, y eso es exactamente lo que es una API: el cliente somos nosotros, y el servidor o cualquier recurso que pueda enviar datos es el chef.
Beneficios de usar APIs
Seguridad: Cuando se usa una API, la aplicación del lado del cliente y del lado del servidor funcionan de forma independiente, y se comunican a través de la API, por lo que si alguien intenta hackear la aplicación del lado del cliente, el servidor se mantendrá seguro y sin problemas.
Flexibilidad y eficiencia: Las APIs permiten que el contenido se puede publicar automáticamente y estar disponible para todos los canales. Permite compartirlo y distribuirlo con mayor facilidad. Por ejemplo podemos mostrar los datos de un ecommerce en una app de iOS, una de Android, en la web y en un widget que enviamos a nuestros partners con una sola API.
Innovación: Con una API, se pueden crear capas de aplicación que permitan distribuir información y servicios a nuevas audiencias, las cuales se puedan personalizar para crear experiencias de usuario personalizadas.
API REST
REST significa Transferencia de estado representacional, y es la arquitectura de API web más popular. Siguen un modelo cliente-servidor donde un programa de software envía una solicitud y el otro responde con algunos datos.
Estas APIs generalmente reciben una respuesta en formato JSON, es un formato estándar que es fácilmente “comprensible” por las aplicaciones y se puede manejar bien en la mayoría de los lenguajes. Por ejemplo desarrollos en React pueden usar fácilmente la respuesta JSON del servidor Java.
JSON significa Notación de objetos javascript, este formato de intercambio de datos es ligero y fácil de leer y escribir para los humanos. Además es fácil para las máquinas analizarlo y generarlo.
También existen muchos mas formatos de API además de JSON como puede ser SOAP, XML-RPC, JSON-RPC, etc.
REST != HTTP
Mucha gente quiere comparar HTTP con REST. pero REST y HTTP no son iguales.
En el estilo arquitectónico REST, los datos y la funcionalidad se consideran recursos y se accede a ellos mediante identificadores uniformes de recursos (URI). Se actúa sobre los recursos mediante un conjunto de operaciones simples y bien definidas. Los clientes y servidores intercambian representaciones de recursos mediante una interfaz y un protocolo estandarizados, generalmente HTTP.
Los recursos están desacoplados de su representación para que se pueda acceder a su contenido en una variedad de formatos, como HTML, XML, texto sin formato, PDF, JPEG, JSON y otros. Los metadatos sobre el recurso están disponibles y se utilizan, por ejemplo, para controlar el almacenamiento en caché, detectar errores de transmisión, negociar el formato de representación adecuado y realizar la autenticación o el control de acceso. Y lo más importante, cada interacción con un recurso es sin estado.
API Request & Response
Las solicitudes de API REST generalmente constan de Método, Cuerpo (autenticación y otros parámetros) y Host. Por ejemplo, esto sería una solicitud.
Como dijimos antes, las respuestas de la API REST generalmente son en formato JSON. Acá tenemos la respuesta que obtendríamos a las solicitudes de API anteriores.
Espero que ahora comprendamos un poco mejor que son y que hacen las APIs. Si querés interiorizarte más en el tema te invito que visites https://restfulapi.net/.