API REST

menu icon

API REST

Las API REST proporcionan una forma flexible y ligera de integrar aplicaciones. Han surgido como el método más común para conectar componentes en arquitecturas de microservicios.

¿Qué es una API REST?

Una API, o interfaz de programación de aplicaciones, es un conjunto de reglas que definen cómo pueden las aplicaciones o los dispositivos conectarse y comunicarse entre sí. Una API REST es una API que cumple los principios de diseño del estilo de arquitectura REST o transferencia de estado representacional. Por este motivo, las API REST a veces se conocen como API RESTful.

El concepto REST, definido por primera vez en 2000 por el ingeniero informático Dr. Roy Fielding en su tesis doctoral, proporciona un nivel relativamente alto de flexibilidad y libertad para los desarrolladores. Esta flexibilidad es solo una de las razones por las que han surgido las API REST como un método común para conectar componentes y aplicaciones en una arquitectura de microservicios.

Principios de diseño de REST

En el nivel más básico, una API es un mecanismo que permite a una aplicación o servicio acceder a un recurso dentro de otra aplicación o servicio.La aplicación o servicio que realiza el acceso se denomina cliente, y la aplicación o servicio que contiene el recurso se denomina servidor.

Algunas API, como SOAP o XML-RPC, imponen una infraestructura estricta a los desarrolladores. No obstante, las API REST se pueden desarrollar utilizando prácticamente cualquier lenguaje de programación y dar soporte a una amplia variedad de formatos de datos. El único requisito es que se ajusten a los siguientes seis principios de diseño de REST, también conocidos como restricciones de arquitectura:

  1. Interfaz uniforme. Todas las solicitudes de API para el mismo recurso deben ser iguales, independientemente de la procedencia de la solicitud. La API REST debe asegurarse de que un mismo dato, por ejemplo, el nombre o la dirección de correo electrónico de un usuario, pertenezca a un único identificador de recurso uniforme (URI). Los recursos no deben ser demasiado grandes, pero deben contener cada dato que el cliente pueda necesitar.
  2. Desacoplamiento del cliente-servidor. En el diseño de la API REST, las aplicaciones de cliente y servidor deben ser completamente independientes entre sí. La única información que la aplicación de cliente debe conocer es el URI del recurso solicitado; no puede interactuar con la aplicación de servidor de ninguna otra forma. De forma similar, una aplicación de servidor no debe modificar la aplicación de cliente aparte de pasarle los datos solicitados a través de HTTP.
  3. Sin estado. Las API REST son API sin estado, lo que significa que cada solicitud debe incluir toda la información necesaria para procesarla. Es decir, las API REST no requieren ninguna sesión del lado del servidor. Las aplicaciones de servidor no pueden almacenar datos relacionados con una solicitud de cliente.
  4. Capacidad de almacenamiento en memoria caché. Siempre que sea posible, los recursos deben poder almacenarse en la memoria caché en el lado del cliente o el servidor. Las respuestas de servidor también deben contener información sobre si el almacenamiento en memoria caché está permitido para el recurso entregado. El objetivo es mejorar el rendimiento en el lado del cliente, a la vez que se aumenta la escalabilidad en el lado del servidor.
  5. Arquitectura del sistema en capas. En las API REST, las llamadas y las respuestas pasan por diferentes capas. Como regla general, no suponga que las aplicaciones de cliente y servidor se conectan directamente entre sí. Puede que haya varios intermediarios diferentes en el bucle de comunicación. Las API REST deben diseñarse para que ni el cliente ni el servidor puedan reconocer si se comunican con la aplicación final o con un intermediario.
  6. Código bajo demanda (opcional). Las API REST normalmente envían recursos estáticos, pero en algunos casos, las respuestas también pueden contener código ejecutable (por ejemplo, applets Java). En estos casos, el código solo debe ejecutarse bajo demanda.

Cómo funcionan las API REST

Las API REST se comunican a través de solicitudes HTTP para ejecutar funciones de base de datos estándar como, por ejemplo, crear, leer, actualizar y suprimir registros (también conocidos como CRUD) dentro de un recurso. Por ejemplo, una API REST utilizará una solicitud GET para recuperar un registro, una solicitud POST para crearlo, una solicitud PUT para actualizarlo y una solicitud DELETE para suprimirlo. En las llamadas de API, se pueden utilizar todos los métodos HTTP. Una API REST bien diseñada es similar a un sitio web que se ejecuta en un navegador web con funcionalidad HTTP incorporada.

El estado de un recurso en un determinado instante, o indicación de fecha y hora, se conoce como la representación del recurso. Esta información se puede entregar a un cliente en prácticamente cualquier formato, por ejemplo, JavaScript Object Notation (JSON), HTML, XLT, Python, PHP o texto sin formato. JSON es popular porque es legible tanto por personas como por máquinas, y es independiente del lenguaje de programación.

Las cabeceras y parámetros de solicitud también son importantes en las llamadas de API REST, porque incluyen información de identificador importante como, por ejemplo, metadatos, autorizaciones, identificadores de recursos uniformes (URI), almacenamiento en memoria caché, cookies, etc. En unas API REST bien diseñadas, se utilizan cabeceras de solicitud y cabeceras de respuesta, junto con los códigos de estado HTTP convencionales.

Mejores prácticas de la API REST

Aunque la flexibilidad es una gran ventaja del diseño de la API REST, esa misma flexibilidad puede hacer que se diseñe una API rota o que no funcione correctamente. Por este motivo, los desarrolladores profesionales comparten mejores prácticas en las especificaciones de la API REST.

La Especificación OpenAPI (OEA) establece una interfaz para describir una API de forma que permita a cualquier desarrollador o aplicación descubrirla y comprender completamente sus parámetros y capacidades: puntos finales disponibles, operaciones permitidas en cada punto final, parámetros de operación, métodos de autenticación y otra información. La última versión, OAS3 (enlace externo a IBM), incluye herramientas prácticas como, por ejemplo, OpenAPI Generator, para generar apéndices de clientes y servidor de API en distintos lenguajes de programación.

La protección de una API REST también empieza siguiendo las mejores prácticas del sector, por ejemplo, el uso de algoritmos hash para garantizar la seguridad de contraseñas y HTTPS para proteger la transmisión de datos. Una infraestructura de autorización como OAuth 2.0 (enlace externo a IBM) puede ayudar a limitar los privilegios de las aplicaciones de terceros. Utilizando una indicación de fecha y hora en la cabecera HTTP, una API también puede rechazar cualquier solicitud que llegue después de un determinado periodo de tiempo. La validación de parámetros y los tokens web de JSON son otras formas de garantizar que solo los clientes autorizados puedan acceder a la API.

API REST e IBM Cloud

Las ventajas de las API REST implican que seguirán siendo una parte integral del proceso de desarrollo de software, especialmente cuando la demanda de mejores experiencias de cliente y más aplicaciones afecta a las operaciones de negocio y TI.

Para satisfacer tales demandas, sería útil apostar por una mayor automatización. Lo ideal sería empezar por pequeños proyectos de éxito medible, que después puede escalar y optimizar para otros procesos y en otras partes de su organización. Al colaborar con IBM, tendrá acceso a prestaciones de automatización basadas en IA, que incluyen flujos de trabajo predefinidos, para acelerar la innovación haciendo que todos los procesos sean más inteligentes.

Las herramientas y los servicios de IBM pueden ayudarle a resolver problemas importantes relacionados con las API, por ejemplo, de seguridad, gobierno y automatización, a la vez que continúa modernizando sus aplicaciones.

Dé el siguiente paso:

  • Revise IBM Cloud Pak for Integration, que se basa en la capacidad principal de IBM API Connect para que los arquitectos y administradores puedan controlar completamente el ciclo de vida de la API.
  • Visite IBM Cloud API Docs, que contiene documentación para las API soportadas en IBM Cloud.
  • Realice la evaluación sobre la madurez de integración para evaluar su nivel de madurez de integración en dimensiones críticas, y descubra las acciones que puede llevar a cabo para acceder al siguiente nivel.
  • Descargue la guía de integración ágil, que explora las ventajas de un enfoque basado en contenedores, descentralizado y alineado con microservicios para la integración de soluciones. 

Empiece hoy mismo con una cuenta de IBM Cloud.