¿Qué es una API REST?
Explore la solución API REST de IBM Suscríbase a las actualizaciones sobre la IA
Imagen de la IU de gestión de API
¿Qué es una API REST?

Una API REST (también denominada API RESTful o API web RESTful) es una interfaz de programación de aplicaciones (API) que se ajusta a los principios de diseño del estilo arquitectónico de transferencia de estado representacional (REST). Las API REST proporcionan una forma flexible y ligera de integrar aplicaciones y conectar componentes en arquitecturas de microservicios.
 

Primero, definido en 2000 por el científico informático Dr. Roy Fielding en su disertación doctoral, REST proporciona un nivel relativamente alto de flexibilidad, escalabilidad y eficiencia para los desarrolladores. Por estas razones, las API REST han surgido como un método común para conectar componentes y aplicaciones en una arquitectura de microservicios.

Derribar los mitos de la observabilidad

Este libro electrónico tiene como objetivo derribar los mitos de la observabilidad y mostrar su función en el mundo digital.

Contenido relacionado

Lea una guía de la automatización inteligente

Descubra cómo la IA optimiza los agentes basados en API
Principios de diseño de REST En el nivel más básico, una API es un mecanismo que permite que una aplicación o servicio acceda a un recurso dentro de otra aplicación o servicio. La aplicación o servicio que accede a los recursos es el cliente, y la aplicación o servicio que contiene el recurso es el servidor. Algunas API, como SOAP o XML-RPC, imponen un marco estricto a los desarrolladores. Pero pueden desarrollar API REST utilizando prácticamente cualquier lenguaje de programación y admitir una variedad de formatos de datos. El único requisito es que se alineen con estos seis principios de diseño REST, también conocidos como restricciones arquitectónicas: Interfaz uniforme

Todas las solicitudes de API para el mismo recurso deben tener el mismo aspecto, independientemente de su procedencia. La API REST debe garantizar que el mismo dato, como el nombre o la dirección de correo electrónico de un usuario, pertenezca a un solo identificador de recursos uniforme (URI). Los recursos no deben ser demasiado grandes, pero deben contener toda la información que el cliente pueda necesitar.

Desacoplamiento cliente-servidor

En el diseño de una API REST, las aplicaciones cliente y servidor deben ser completamente independientes entre sí. La única información que debe conocer la aplicación cliente es el URI del recurso solicitado; no puede interactuar con la aplicación servidor de ninguna otra forma. Del mismo modo, una aplicación servidor no debería modificar la aplicación cliente más allá de pasarle los datos solicitados a través de HTTP.

Sin estado

Las API REST no tienen estado, lo que significa que cada solicitud debe incluir toda la información necesaria para procesarla. En otras palabras, las API REST no requieren ninguna sesión del lado del servidor. Las aplicaciones de servidor no pueden almacenar ningún dato relacionado con una solicitud de cliente.

Capacidad de almacenamiento en caché

Cuando sea posible, los recursos deben poder almacenarse en caché en el lado del cliente o del servidor. Las respuestas del servidor también deben contener información sobre si se permite el almacenamiento en caché para el recurso entregado. El objetivo es mejorar el rendimiento en el lado del cliente y, al mismo tiempo, aumentar la escalabilidad en el lado del servidor.

Arquitectura de sistema en capas

En las API REST, las llamadas y respuestas pasan por diferentes capas. Como regla general, no asuma que las aplicaciones cliente y servidor se conectan directamente entre sí. Puede haber varios intermediarios diferentes en el circuito de comunicación. Las API REST deben diseñarse de tal manera que ni el cliente ni el servidor puedan saber si se comunica con la aplicación final o con un intermediario.

Código bajo demanda (opcional)

Las API REST suelen enviar recursos estáticos, pero, en algunos casos, las respuestas también pueden contener código ejecutable (como applets de 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 realizar funciones estándar de bases de datos, como crear, leer, actualizar y eliminar registros (también conocido como CRUD) dentro de un recurso.

Por ejemplo, una API REST usaría una solicitud GET para recuperar un registro. Una solicitud POST crea un nuevo registro. Una solicitud PUT actualiza un registro y una solicitud DELETE lo elimina. Todos los métodos HTTP se pueden utilizar en las llamadas a la API. 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 cualquier instante particular, o marca temporal, se conoce como representación de recursos. Esta información se puede entregar a un cliente en prácticamente cualquier formato, incluyendo JavaScript Object Notation (JSON), HTML, XLT, Python, PHP o texto plano. JSON es popular porque es legible tanto por humanos como por máquinas, y es independiente del lenguaje de programación.

Los encabezados y parámetros de solicitud también son importantes en las llamadas a la API REST, porque incluyen información importante del identificador, como metadatos, autorizaciones, identificadores de recursos uniformes (URI), almacenamiento en caché, cookies y más. Los encabezados de solicitud y los encabezados de respuesta, junto con los códigos de estado HTTP convencionales, se utilizan dentro de las API REST bien diseñadas.

 

Mejores prácticas de la API REST

Aunque la flexibilidad es una gran ventaja del diseño de API REST, esa misma flexibilidad facilita el diseño de una API que no sirve o que funciona mal. Por este motivo, los desarrolladores profesionales comparten las mejores prácticas en las especificaciones de la API REST.

La especificación OpenAPI (OAS) establece una interfaz para describir una API de manera que permita a cualquier desarrollador o aplicación descubrirla, y comprender completamente sus parámetros y capacidades. Esta información incluye endpoints disponibles, operaciones permitidas en cada endpoint, parámetros de operación, métodos de autenticación, entre otros. La última versión, OAS3, incluye herramientas prácticas, como OpenAPI Generator, para generar clientes API y stubs de servidor en diferentes lenguajes de programación.

La seguridad de una API REST también comienza con las mejores prácticas del sector. Utilice algoritmos hash para la seguridad de las contraseñas y HTTPS para la transmisión segura de datos. Un marco de autorización como OAuth 2.0  puede ayudar a limitar los privilegios de las aplicaciones de terceros.

Al usar una marca temporal en el encabezado HTTP, una API también puede rechazar cualquier solicitud que llegue después de un cierto periodo. La validación de parámetros y los tokens web JSON son otras formas de garantizar que solo los clientes autorizados puedan acceder a la API.

Soluciones relacionadas IBM API Connect

Gestione el ciclo de vida de su API en múltiples clouds, impulse la socialización y optimice los esfuerzos de monetización en todo su ecosistema empresarial con la gestión segura de API de IBM® API Connect.

Soluciones de integración

Conecte, automatice y desbloquee el potencial de negocio con soluciones de integración.

Soluciones iPaaS

Conecte aplicaciones, datos, procesos de negocio y servicios, ya sea alojados localmente, en una nube privada o dentro de un entorno de nube pública.

Recursos ¿Qué es una API?

Descubra cómo las interfaces de programación de aplicaciones, o API, simplifican el desarrollo y la innovación de software al permitir que las aplicaciones intercambien datos y funcionalidad de forma fácil y segura.

¿Qué es la gestión de API?

Obtenga más información sobre la gestión de API y cómo una plataforma unificada de gestión de API puede ayudar a su organización a escalar.

2023 Gartner Critical Capabilities

Lea el informe Gartner® Critical Capabilities for Full Lifecycle API Management de 2023 para obtener más detalles sobre por qué Gartner reconoció a IBM como líder.

Dé el siguiente paso

Utilice IBM API Connect para proteger y gestionar las API empresariales durante todo el ciclo de vida. Permite que usted y sus clientes puedan crear, gestionar, proteger, socializar y monetizar de forma coherente las API empresariales. Además, está disponible como una plataforma de gestión de API de gran escalabilidad en IBM Marketplace y AWS.

Explore API Connect Reserve una demostración en vivo