Una API (interfaz de programación de aplicaciones) es un conjunto de reglas que permite que un software se comunique con otro. Piensa en ello como un menú: tu aplicación puede «pedir» datos o acciones, y la API le dice a la cocina (un servicio) exactamente qué cocinar y cómo se servirá.
Las API estandarizan la forma en que se realizan las solicitudes y se devuelven las respuestas, de modo que diferentes sistemas pueden funcionar juntos de forma fiable, incluso si han sido creados por diferentes equipos, empresas o en diferentes lenguajes de programación.
A nivel práctico, una API define los puntos finales (direcciones a las que se puede llamar), los métodos que se pueden utilizar (como GET para recuperar datos o POST para enviar datos), el formato de lo que se envía (a menudo JSON) y lo que se debe esperar como respuesta (datos más un código de estado como 200 para «OK» o 404 para «No encontrado»). Esa previsibilidad es la clave.
Si quieres ser exacto, puedes usar una API sin un SDK, pero usar un SDK puede ahorrarte tiempo y reducir los errores.
Sí, varios estilos, cada uno con sus ventajas e inconvenientes:
Por lo general, sí. En lugar de crear todo tú mismo, las API te permiten conectar pagos, mapas, correo electrónico, búsquedas, análisis, inteligencia artificial y mucho más. Esto ahorra tiempo de ingeniería, mejora la fiabilidad (el proveedor mantiene su servicio actualizado) y permite a tu equipo centrarse en lo que hace que tu producto sea único.
Las desventajas: heredas los límites de velocidad, los precios y las dependencias de tiempo de actividad de tu proveedor. Si tu producto no puede funcionar sin esa API, planifica la redundancia.
A menudo. Muchas API requieren autenticación para que el proveedor sepa quién eres y pueda aplicar permisos y límites de velocidad. Los enfoques más comunes incluyen:
Mantenga las claves y los tokens fuera de los repositorios públicos y del código del lado del cliente siempre que sea posible.
En realidad, no. Un navegador web, curl o cualquier cliente HTTP funciona para muchas API. Los desarrolladores suelen utilizar herramientas como Postman o bibliotecas de lenguaje integradas para realizar solicitudes, inspeccionar respuestas y guardar ejemplos. Para las aplicaciones de producción, se utiliza la biblioteca HTTP de su lenguaje o el SDK del proveedor.
Prácticamente todo lo moderno: aplicaciones móviles que extraen perfiles, «Iniciar sesión con Google/Apple», tiendas online que procesan pagos, dispositivos domésticos inteligentes que se sincronizan, paneles de control que extraen análisis, incluso tu widget del tiempo. Si el software intercambia datos, es probable que haya una API detrás.