¿Qué es una API?

Una interfaz de programación de aplicaciones (API) es un conjunto de protocolos que permiten 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 los 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 aplicaciones existentes y automatizar procesos. Hay miles de API disponibles en la web, muchas de las cuales son de uso gratuito. Puedes recurrir a un directorio de API como Postman API Network o visitar el sitio web del servicio o producto que quieres integrar para comprobar si tienen una API disponible.

Aunque existen varios tipos de arquitectura de API, como las API de SOAP (Simple Object Access Protocol), las API de GraphQL y las API de RPC (Remote Procedure Call), esta guía se centrará en una de las más comunes: la transferencia de estado representacional (REST). Los servicios web que se ajustan al estilo de API de REST se conocen como API de RESTful. Las API de RESTful usan HTTP y se parecen mucho a la URL de una página web.

¿Cuál es un ejemplo de una API?

Probablemente ya te has encontrado con las API en acción sin siquiera darte cuenta. Imagina que pides el almuerzo a través del sitio web de tu restaurante de tacos favorito. Al finalizar la compra, debes ingresar 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. Luego, ingresas la información de pago y notas que los campos de pago son procesados por un servicio móvil de pago confiable. Por último, después de hacer el pedido, puedes inscribirte en un programa de lealtad y obtener recompensas según tu pedido con solo inscribirte usando la plataforma de redes sociales que prefieras.

El autocompletado de direcciones, el procesamiento de pagos y el registro mediante 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 usa la API de Google Maps para recopilar fácilmente direcciones de distribución, la API de Square para integrarse con 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 usan solicitudes y respuestas HTTP para intercambiar información a través de internet. Esto es beneficioso porque el cliente web que realiza la solicitud y el servidor de API que responde hablan un lenguaje común. La solicitud y la respuesta del mensaje usan un protocolo web HTTP común.

Hay muchos casos de uso comunes para las API REST, normalmente en la línea de las funciones estándar de base de datos de crear, recuperar, actualizar y eliminar (CRUD). Por ejemplo, las API de REST pueden realizar acciones de creación, usando elementos como la API de Facebook para crear una nueva cuenta de recompensas. También pueden recuperar datos usando elementos como la API de Google Maps para recuperar direcciones. 

La anatomía de una solicitud de API

Veamos la anatomía de una solicitud de API, que tiene cinco componentes:

La URL base: El prefijo del endpoint.

El endpoint: Esto le indica a la solicitud a dónde ir.

El método: determina el tipo de solicitud 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.

Así que, con lo básico cubierto, profundicemos un poco más.

Aquí tienes un ejemplo de un endpoint para la API de Google Maps Places:

https://maps.googleapis.com/maps/api/place/autocomplete/

Este endpoint tiene dos componentes. El primero es la URL base; el dominio donde se sirve la API. En este ejemplo, https://maps.googleapis.com es la URL base. La ruta del endpoint determina el recurso que estás solicitando. Aquí, estamos solicitando un recurso específico de la API de Google Maps Places llamado Autocomplete, por lo que tenemos esta ruta: /maps/api/place/autocomplete

Si te preguntas por qué esto se parece tanto a una URL, es porque lo es. Recuerda que esta solicitud se realiza a través de HTTP. Si pones esto en el navegador, obtendrás una página HTML muy básica con la respuesta en diferentes formatos según la API, y JSON es uno de los formatos de respuesta más comunes.

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 deben incluirse en cada solicitud. Los métodos más comunes están relacionados con las operaciones CRUD: POST (crear), GET (leer), PUT (actualizar) y DELETE. El método le indica a la API lo que quieres hacer, y cada endpoint espera un método determinado.

¿Qué es un encabezado de solicitud?

Otro componente que se usa para llamar a una API es un encabezado de solicitud. Un encabezado de solicitud en realidad es un encabezado HTTP. Proporciona información adicional sobre el contexto de la solicitud. Por ejemplo, un encabezado de solicitud podría indicar el idioma preferido que se usará 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 usa la API es legítima y ayuda a garantizar la seguridad de la API

Según el método, es posible que debas definir datos adicionales en el cuerpo de la solicitud. Por ejemplo, si estás creando algo con un método POST, puede haber campos de datos que se usen durante la creación y que debas ingresar.

Como ejemplo, consideremos al usuario que se registra para obtener una cuenta de premios. El usuario completa ciertos campos en tu sitio web para crear la cuenta. En el backend, se invoca una API y los detalles que el usuario ingresó se usan en el cuerpo de la solicitud:

{
"first_name": "Kris",
"last_name": "Owner",
"email": "krisowner@email.com",
}

Llamar a una API

Ahora que sabes qué compone una solicitud de API, ¿cómo haces una llamada? Para probar al instante una API y ver la respuesta, puedes enviar la solicitud mediante curl o una aplicación como Postman.

Por ejemplo, supongamos que quieres recuperar los detalles de una cuenta de usuario específica. La respuesta puede verse similar a la siguiente:

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 solicitud que hiciste. 

Analicemos esto más a fondo. La primera línea contiene el estado, que en este caso es 200 para indicar éxito. En la siguiente línea, el encabezado Content-Type indica el formato de la información que solicitaste, que en este caso es JSON. Por último, el cuerpo de la respuesta contiene los detalles sobre el usuario.

Aquí, hemos demostrado cómo llamar a una API para una recuperación simple. 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 API es incorporar la solicitud en la aplicación y hacer algo con los datos que recibes en la respuesta.

¿Cómo garantizas la seguridad de la API?

Cuando se trata de Seguridad de la API. Necesitas mantener seguros tus 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 común de autenticar clientes y garantizar que solo las personas correctas puedan acceder. OAuth (Autorización abierta) es otra opción: es un protocolo estándar que permite a los usuarios otorgar a aplicaciones de terceros acceso a sus recursos sin tener que compartir sus credenciales de inicio de sesión. La limitación de velocidad de cuántas solicitudes se pueden manejar en un periodo determinado también es importante para evitar abusos y mantener tu API funcionando sin problemas. El cifrado HTTPS es imprescindible para mantener segura toda la comunicación de tu API en tránsito y proteger la información sensible de que caiga en las manos equivocadas.

¿Por qué es importante la documentación de la API?

Si quieres que los desarrolladores usen tu API de manera eficaz, necesitas documentación clara y completa. Es como una hoja de ruta que les ayuda a entender cómo aprovechar al máximo tu API. La documentación debe cubrir todos los detalles importantes, como endpoints, formatos de solicitud y respuesta, requisitos de autenticación, e incluso proporcionar algunos fragmentos de código para ayudarlos a empezar. También es buena idea incluir información sobre el manejo de errores, el límite de velocidad y cualquier práctica recomendada o restricción específica que acompañe a la API. Una buena documentación de API reduce la curva de aprendizaje y ayuda a los desarrolladores a integrar la API sin problemas en sus aplicaciones y sin ninguna complicación.

¿Qué es el versionado de API?

A medida que tu API crece y evoluciona, el control de versiones se convierte en una parte crucial del proceso. Debes poder agregar nuevas funciones y hacer cambios sin afectar 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 esta manera, queda claro qué versión de la API se está usando. Otro enfoque es usar el control de versiones en el encabezado de la solicitud, 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 tu API es como hacerle un chequeo de estado completo. Quieres asegurarte de que sea confiable, tenga un buen rendimiento y cumpla con las especificaciones requeridas. Las pruebas unitarias son un excelente punto de partida, ya que te permiten probar componentes individuales de tu API y asegurarte de que cada función o método se comporte como se espera. 

Las pruebas de integración son otro paso importante, ya que garantizan que las diferentes partes de tu API puedan funcionar bien juntas y darte los resultados que quieres. 

Y si de verdad quieres poner a prueba tu API a fondo, también puedes realizar pruebas de carga. Las pruebas de carga te ayudan a encontrar cualquier cuello de botella de rendimiento y a asegurarte de que tu API pueda manejar la cantidad de tráfico esperada. Existen 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 la API?

Gestionar tu API a lo largo de todo su ciclo de vida es clave para su éxito y capacidad de mantenimiento a largo plazo. Las puertas de enlace de API actúan como cadeneros en un club: proporcionan un único punto de entrada para todas las solicitudes de API y gestionan tareas vitales como la autenticación, la limitación de velocidad y el enrutamiento de solicitudes. 

Las estrategias de control de versiones y desuso (descontinuación de API) también son una parte importante del ciclo de vida de la API. Cuando introduzcas una nueva versión de tu API, asegúrate de proporcionar rutas de migración claras e informar a los desarrolladores cuándo planeas retirar gradualmente las versiones anteriores. Y si alguna vez necesitas retirar una API, avisa a los desarrolladores con suficiente anticipación para que puedan actualizar sus integraciones. Un poco de planificación y comunicación ayuda mucho a mantener tu API funcionando sin problemas y a evitar interrupciones importantes para los usuarios.

Cómo trabajar con la API de Fastly

La API de Fastly es una API RESTful que proporciona acceso a todas las funciones disponibles a través de la interfaz web de Fastly.

Al usar la API, puedes trabajar con los objetos relacionados con los servicios y las cuentas de Fastly de la manera que te resulte más conveniente, ya sea integrándolos con tus flujos de trabajo existentes o automatizando procesos repetitivos o engorrosos. Por ejemplo, podrías usar la API de análisis en tiempo real de Fastly para integrar la analítica de Fastly en tu tablero de analítica personalizado. O bien, puedes optar por configurar un proceso de purga automatizado. Las posibilidades están limitadas solo por tu imaginación (y tus habilidades de programación).

Obtén más información sobre la API de Fastly en nuestra documentación de referencia de la API. Lo mejor de todo es que la API de Fastly es gratuita con tu cuenta de Fasly. 

Más información sobre la seguridad de la API de Fastly

Más información

¿Estás listo para empezar?

Ponte en contacto con nosotros