Del curso: Aprende REST API
Qué es una REST API y cómo se diferencia de otras API
Del curso: Aprende REST API
Qué es una REST API y cómo se diferencia de otras API
Hablemos ahora de qué es eso de una API REST y cómo se diferencia de otras API. Una API REST o, repite conmigo, interfaz de programación de aplicaciones para la transferencia de estado representacional sigue una serie de principios de diseño conocidos como REST. Estos principios fueron definidos por Roy Fielding en su tesis doctoral y se basan en el uso del protocolo HTTP, esencial en la comunicación de datos en la web. Entre las características clave de una API REST destacan, en primer lugar, el uso de métodos HTTP estándar en el que las operaciones CRUD, Crear, Leer, Actualizar y Eliminar, se efectúan mediante métodos HTTP como Get, Post, Put y Delete. En segundo lugar, su característica más conocida es la independencia del estado. Eso quiere decir que cada petición HTTP lleva toda la información necesaria para su ejecución sin guardar ningún estado en las solicitudes. Cuando oigas hablar de esto, lo sabrás porque te dirán que la API es "stateless". Cabe destacar también que la identificación de recursos se realiza a través de URI o, lo que es lo mismo, las API REST emplean identificadores uniformes o URI para la gestión de recursos. Algo que se persigue, por otro lado, es mantener una interfaz uniforme. Para facilitar su uso y comprensión, la interfaz de la API debe ser consistente y seguir un patrón estándar. Y finalmente, con las API nos beneficiamos de la arquitectura estratificada, que permite separar al cliente de la base de datos en el servidor, aumentando la escalabilidad y la seguridad. Normalmente esto no se nota en el código, pero con el uso de "middlewares" como Express para Node.js podemos agregar fácilmente las capas para, por ejemplo, mejorar la experiencia de autenticación. Veamos ahora las diferencias de las API REST con otros tipos de API. Por un lado tenemos las API RPC, que están centradas en llamar a funciones remotas que difieren de la lógica de REST, ya que se enfocan en trabajar con recursos y sus representaciones. Como ejemplo, en un entorno RPC, un cliente solicita la ejecución de un método Sumar en el servidor de la manera siguiente con JavaScript. Por su lado, las API SOAP se adhieren a un protocolo concreto y requieren de XML para la comunicación, a diferencia de las REST, que son más flexibles y permiten formatos como XML, pero también JSON. Existen también las API GraphQL. Este tipo permite a los clientes especificar precisamente los datos que necesitan, lo que puede optimizar las comunicaciones y reducir el exceso de carga de la red. Además, tenemos un tipo de API llamadas "API en tiempo real", y dentro de ellas tenemos los WebSockets, que facilitan la comunicación bidireccional constante, a diferencia del modelo de solicitud-respuesta de REST, que no es ideal para la comunicación en tiempo real. Un ejemplo parecido a los utilizados con otros tipos de API en tiempo real es un cliente de WebSocket que envía un mensaje para sumar dos números. Finalmente, este mismo ejemplo lo podemos ver con una API REST. Por su parte, REST se maneja con una operación sencilla y equivalente en lugar de la invocación de un procedimiento, sino operando con recursos. La API REST se basa en un enfoque más alineado con la web y sus estándares, lo que ha facilitado su adopción masiva en la industria del desarrollo web. Aunque han surgido tecnologías alternativas como GraphQL, la simplicidad y eficiencia de REST mantienen su vigencia en la construcción de interfaces para servicios en línea. La elección entre REST y otro tipo de API dependerá de la necesidad específica de cada proyecto o la preferencia del personal que esté desarrollando el sistema.
Practica mientras aprendes con los archivos de ejercicios.
Descarga los archivos que el instructor utiliza para enseñar el curso. Sigue las instrucciones y aprende viendo, escuchando y practicando.