Una interfaz de programación de aplicaciones (API) es un conjunto de protocolos que permite que sistemas de software dispares se comuniquen entre sí independientemente de su lenguaje de programación o plataforma. A veces se dice que las API «ayudan a las máquinas a hablar con otras máquinas» porque, al comunicarse mediante un conjunto estructurado de reglas, las API te permiten interactuar con sistemas de forma programática en lugar de hacerlo a través de una interfaz web.
Las API también te permiten integrar nuevas soluciones con las aplicaciones existentes y automatizar procesos. Hay miles de API disponibles en internet, muchas de las cuales son gratuitas. Puedes acudir a un directorio de interfaz de programación de aplicaciones como Postman API red o visitar el sitio web del servicio o producto que quieras integrar para comprobar si tienen una interfaz de programación de aplicaciones disponible.
Aunque hay varios tipos de arquitectura de API, como las API SOAP (Simple Object Access Protocol), las API GraphQL y las API RPC (Remote Procedure Call), esta guía se centrará en una de las más comunes: Representational State Transfer (REST). Los servicios web que se ajustan al estilo de API REST se conocen como API RESTful. Las API RESTful usan HTTP y se parecen mucho a la URL de una página web.
¿Qué es un ejemplo de una interfaz de programación de aplicaciones?
Seguro que ya te has encontrado con API en acción sin siquiera darte cuenta. Imagina que estás pidiendo el almuerzo a través del sitio web de tu restaurante de tacos favorito. Cuando vas a pagar, tienes que introducir la dirección de distribución. Casi en cuanto empiezas a escribir la dirección en la barra de búsqueda, se autocompletan la ciudad, el estado y el código postal. A continuación, vas a introducir la información de pago y observas que los campos de pago los procesa un servicio de pago móvil de confianza. Por último, después de hacer el pedido, puedes registrarte en un programa de fidelización y ganar recompensas en función del pedido con solo registrarte usando tu plataforma de redes sociales preferida.
El autocompletado de direcciones, el procesamiento de pagos y el registro en redes sociales son ejemplos de integración de API. En lugar de tener que crear cada uno de estos componentes desde cero, el sitio web utiliza la API de Google Maps para recopilar fácilmente direcciones de distribución, la API de Square para integrar el sistema de procesamiento de pagos de Square y la API de Facebook para crear rápidamente cuentas de recompensas.
¿Cómo funcionan las API REST?
Las API REST utilizan petición y respuesta HTTP para intercambiar información a través de internet. Esto es beneficioso porque el cliente web que hace la petición y el servidor de API que responde hablan un lenguaje común. La petición y la respuesta del mensaje utilizan un protocolo web HTTP común.
Hay muchos casos de uso habituales para las API REST, normalmente en la línea de las funciones estándar de bases de datos de crear, recuperar, actualizar y eliminar (CRUD). Por ejemplo, las API REST pueden realizar acciones de creación, utilizando elementos como la API de Facebook para crear una nueva cuenta de recompensas. También pueden recuperar datos utilizando elementos como la API de Google Maps para recuperar direcciones.
Anatomía de una petición a una API
Veamos la anatomía de una petición a una interfaz de programación de aplicaciones, que tiene cinco componentes:
La URL base: El prefijo del endpoint.
El endpoint: Esto indica a la petición dónde debe dirigirse.
El método: Determina el tipo de petición que se está realizando.
Los encabezados: proporcionan información que ayuda al cliente y al servidor a comunicarse entre sí.
El cuerpo: Contiene la información que quieres enviar al servidor.
Ahora que conocemos lo básico, vamos a profundizar un poco más.
Aquí tienes un ejemplo de un punto de conexión de la interfaz de programación de aplicaciones Places de Google Maps:
https://maps.googleapis.com/maps/api/place/autocomplete/
Este punto de conexión tiene dos componentes. El primero es la URL base; es decir, el dominio desde el que se sirve la API. En este ejemplo, https://maps.googleapis.com es la URL base. La ruta del punto de conexión determina el recurso para el que se envía la petición. En este caso, se trata de un recurso concreto de la API de Places de Google Maps llamado Autocomplete, de modo que la ruta es la siguiente: /maps/api/place/autocomplete
Si te preguntas por qué esto se parece mucho a una URL, es porque lo es. Recuerda que esta petición se está realizando a través de HTTP. Si pones esto en el navegador, obtendrás una página HTML muy básica con la respuesta formateada de distintas maneras según la interfaz de programación de aplicaciones, siendo JSON uno de los formatos de respuesta más habituales.
Sin embargo, para hacer algo realmente con la API, necesitas algunos componentes más. El primero es un método. Los métodos son palabras clave predefinidas que se deben incluir en todas las peticiones. Los métodos más habituales están relacionados con las operaciones CRUD: POST (crear), GET (leer), PUT (actualizar) y DELETE. El método le dice a la API qué quieres que haga, y cada punto de conexión espera un método determinado.
¿Qué es un encabezado de petición?
Otro de los componentes que se utilizan para llamar a una interfaz de programación de aplicaciones es el encabezado de la petición. Un encabezado de petición es en realidad un encabezado HTTP. Proporciona información adicional sobre el contexto de la petición. Por ejemplo, el encabezado de una petición puede indicar el idioma preferido que se debe utilizar para la respuesta. La mayoría de las API también requieren encabezados de autenticación, que proporcionan información de autenticación al cliente. Son como un certificado personal que demuestra que la persona que utiliza la interfaz de programación de aplicaciones es legítima y ayuda a garantizar la seguridad de API.
En función del método, puede que tengas que definir datos adicionales en el cuerpo de la petición. Por ejemplo, si estás creando algo mediante un método POST, puede haber campos de datos que debas introducir durante la creación.
Piensa en el usuario que se registra para una cuenta de fidelización. El usuario rellena ciertos campos en tu sitio web para crear su cuenta. En el backend, se realiza la llamada a una API y los datos indicados por el usuario se añaden al cuerpo de la petición:
{
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",
}Llamadas a una interfaz de programación de aplicaciones
Ahora que ya sabes qué compone una petición a una interfaz de programación de aplicaciones, ¿cómo haces una llamada? Para probar al instante una interfaz de programación de aplicaciones y ver la respuesta, puedes enviar la petición mediante curl o una aplicación como Postman.
Por ejemplo, supongamos que quieres recuperar los datos de una cuenta de usuario concreta. La respuesta podría ser algo parecido a esto:
HTTP/1.1 200 OK
Content-Type: application/json{
"comment": "",
"created_at": "2020-04-27T19:40:49+00:00",
"deleted_at": null,
"customer_id": "x4xCwxxJxGCx123Rx5xTx",
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",
}La respuesta que se devuelve depende de la API y de la petición que hiciste.
Vamos a verlo más en detalle. La primera línea contiene el estado, que en este caso es 200 e indica que la respuesta se ha realizado correctamente. En la siguiente línea, el encabezado Content-Type indica el formato de la información que has solicitado, que en este caso es JSON. Por último, el cuerpo de la respuesta contiene los datos del usuario.
Aquí hemos demostrado cómo llamar a una interfaz de programación de aplicaciones para una recuperación sencilla. Probablemente podrías obtener la misma información iniciando sesión a través de la interfaz web de la aplicación. El caso de uso más probable para llamar a una interfaz de programación de aplicaciones es incorporar la petición a la aplicación y hacer algo con los datos que recibes en la respuesta.
¿Cómo se garantiza la seguridad de API?
Cuando se trata de seguridad de API, es fundamental. Debes mantener a salvo los datos sensibles y asegurarte de que solo las personas autorizadas puedan acceder a tu API. Además de los encabezados de autenticación mencionados anteriormente, las claves de API son una forma habitual de autenticar clientes y garantizar que solo las personas adecuadas puedan acceder. OAuth (Autorización abierta) es otra opción: es un protocolo estándar que permite a los usuarios conceder a aplicaciones de terceros acceso a sus recursos sin tener que compartir sus credenciales de inicio de sesión. La limitación de frecuencia de cuántas peticiones se pueden gestionar en un periodo determinado también es importante para evitar abusos y mantener el buen funcionamiento de tu API. El cifrado HTTPS es imprescindible para mantener seguras en tránsito todas las comunicaciones de tu API y proteger la información sensible para que no caiga en malas manos.
¿Por qué es importante la documentación de una interfaz de programación de aplicaciones?
Si quieres que los desarrolladores utilicen tu interfaz de programación de aplicaciones de forma eficaz, necesitas documentación clara y exhaustiva. Es como una hoja de ruta que les ayuda a entender cómo sacar el máximo partido a tu interfaz de programación de aplicaciones. La documentación debe cubrir todos los detalles importantes, como los endpoints, los formatos de petición y respuesta, los requisitos de autenticación e incluso proporcionar algunos fragmentos de código para empezar. También es buena idea incluir información sobre la gestión de errores, el límite de volumen y cualquier práctica recomendada o restricción específica que conlleve tu interfaz de programación de aplicaciones. Una buena documentación de la interfaz de programación de aplicaciones reduce la curva de aprendizaje y ayuda a los desarrolladores a integrar la interfaz de programación de aplicaciones sin problemas en sus aplicaciones.
¿Qué es el control de versiones de las API?
A medida que tu API crece y evoluciona, el control de versiones se convierte en una parte crucial del proceso. Quieres poder añadir nuevas funciones y hacer cambios sin romper ninguna integración existente. Una forma de hacerlo es incluir el número de versión directamente en la URL de la API, por ejemplo: /api/v1/resources. De este modo, queda claro qué versión de la API se está utilizando. Otro enfoque es usar el control de versiones en el encabezado de la petición, para que los clientes puedan especificar qué versión quieren. La clave es contar con una estrategia sólida de control de versiones y asegurarte de comunicar cualquier cambio a los desarrolladores. No olvides proporcionar guías de migración cuando introduzcas cambios importantes que rompan la compatibilidad.
¿Por qué necesitas realizar pruebas de API?
Probar la API es como hacerle una comprobación completa del estado. Debes asegurarte de que sea fiable, ofrezca un buen rendimiento y cumpla las especificaciones requeridas. Las pruebas unitarias son un buen punto de partida, ya que te permiten probar componentes individuales de la API y asegurarte de que cada función o método se comporta según lo previsto.
Las pruebas de integración también son importantes para garantizar que las distintas partes de la API funcionen bien juntas y den los resultados que buscas.
Y si de verdad quieres poner a prueba tu API, también puedes hacer pruebas de carga. Las pruebas de carga te ayudan a encontrar cuellos de botella en el rendimiento y a asegurarte de que tu API pueda gestionar la cantidad de tráfico esperada. Hay muchas herramientas y marcos de pruebas automatizadas, como Postman, SoapUI y JMeter, que pueden facilitar las pruebas de API y ayudarte a detectar posibles problemas desde el principio.
¿Qué es la gestión del ciclo de vida de las API?
Gestionar tu interfaz de programación de aplicaciones durante todo su ciclo de vida es clave para su éxito y mantenimiento a largo plazo. Las puerta de enlace de API actúan como porteros de discoteca: proporcionan un único punto de entrada para todas las peticiones a la interfaz de programación de aplicaciones y se encargan de tareas vitales como la autenticación, la limitación de frecuencia y el enrutamiento.
El control de versiones y las estrategias de retirada (descontinuación de la API) también son una parte importante del ciclo de vida de la API. Cuando introduzcas una nueva versión de tu interfaz de programación de aplicaciones, asegúrate de proporcionar rutas de migración claras e informar a los desarrolladores de cuándo tienes previsto retirar gradualmente las versiones anteriores. Y si alguna vez necesitas retirar una interfaz de programación de aplicaciones, avisa a los desarrolladores con suficiente antelación para que puedan actualizar sus integraciones. Un poco de planificación y comunicación ayuda mucho a que la API funcione sin problemas y a evitar interrupciones importantes para los usuarios.
Cómo funciona la Fastly API
La Fastly API es una API RESTful que proporciona acceso a todas las funciones disponibles a través de la interfaz web de Fastly.
Al utilizar la API, puedes trabajar con los objetos relacionados con los servicios y las cuentas de Fastly de la forma que te resulte más conveniente, ya sea integrándola en tus flujos de trabajo existentes o automatizando procesos repetitivos o engorrosos. Por ejemplo, puedes utilizar la API de análisis en tiempo real de Fastly para integrar los análisis de Fastly en tu panel de análisis personalizado. O puedes optar por configurar un proceso de purga automatizado. Las posibilidades solo están limitadas por tu imaginación (y tus habilidades de programación).
Puedes obtener más información sobre la interfaz de programación de aplicaciones de Fastly en nuestra documentación de referencia de la API. Lo mejor de todo es que Fastly API se puede usar gratis con tu cuenta de Fasly.