Pasar al contenido principal

API REST: qué es y cuáles son sus ventajas

Programar una interfaz para que un componente de software pueda interactuar con otros, tanto propios como de terceros, es una tarea bastante frecuente. Una de las soluciones más utilizadas para ello, por muy buenas razones, es el desarrollo de una API REST. A continuación te explicamos las bases de esta tecnología.

Estructura de una API REST

El acrónimo API significa interfaz de programación de aplicaciones (Application Programming Interface). Se refiere a la interfaz que permite hacer que un componente de software se comunique con otros. Este componente puede ser desde una librería de acceso dinámico instalada en el mismo ordenador a, como este caso, una interfaz que permite la conexión remota para recabar, crear o modificar información.

Por su parte, REST significa Representational State Transfer (Transferencia de estado representacional). Es una tecnología que permite acceder a una API por medio de HTTP. Es decir, que cualquier dispositivo, lenguaje de programación o software capaz de hacer una petición web, es capaz de acceder a una API REST.

Cada entidad en el sistema de API tiene un endpoint (punto final), que identifica a un tipo de entidad. Por ejemplo, si tienes una API capaz de trabajar con las entidades Producto y Pedido, los endpoint podrían denominarse, respectivamente, https://www.midominio.com/producto y https://www.midominio.com/pedido.

Por otra parte, las peticiones HTTP tienen varios métodos. Habitualmente se utiliza GET para solicitar información y POST para enviarla. Por ejemplo, al remitir un formulario. Otros de los métodos que hay disponibles son PUT (actualizar) y DELETE (borrar). Si usas estos métodos tienes la oportunidad de llevar a cabo, respectivamente, las operaciones de inserción, consulta, modificación y borrado (CRUD).

En el caso de GET, los parámetros se pasan a través de la URL. En otros casos se pasan mediante un payload en las cabeceras HTTP. Por ejemplo, la consulta GET http://www.midominio.com/producto?id=AB107 devolvería el producto con código AB107. Otras consultas pueden permitir que hagas búsquedas más complejas. Por otra parte, no usar parámetros equivale habitualmente a solicitar todos los elementos para ese endpoint. En este caso, si las referencias a recuperar son muchas, puede que necesites paginar las consultas.

Por otra parte, si necesitas crear un nuevo producto, harás una llamada POST a la URL sin parámetros y, en las cabeceras, incluirás los campos a rellenar. Para esto, generalmente, se utiliza JSON. Para codificar los datos.

Ventajas de una API REST

Una API REST tiene muchas ventajas. En primer lugar, programarlas es sencillo. Además, los desarrolladores saben habitualmente cómo hacerlo. Esto quiere decir que, si necesitas que tu API sea accesible por clientes, proveedores, etc. solo tendrás que indicarles la forma de autenticarse en el sistema, así como los endpoints y sus parámetros.

Además, al ser un sistema bastante estándar, es fácil de integrar en otras aplicaciones. Si partes de un código más o menos estándar, es fácil crear una librería que conecte tu API con aplicaciones o frameworks. Y, como prácticamente cualquier dispositivo y software actual dispone de algún tipo de conectividad web, la integración no tendría que ser un problema.

Otra de sus ventajas es que se trata de una conexión sin estado. Las peticiones se llevan a cabo con facilidad, y no es necesario mantener la conexión activa. Tampoco comprobar si se ha perdido, por ejemplo. El único requisito necesario es que la autenticación siga siendo válida, y renovarla si ha expirado.

Como programarla

Lo mejor que puedes hacer para programar una API REST es partir de algún ejemplo básico escrito en el lenguaje de programación y/o framework que estás utilizando. Es probable que puedas ver cómo resolver asuntos como el de la autenticación. Incluso puede que ya existan plantillas para determinar los parámetros que recibe cada llamada.

El resto es muy sencillo. Generalmente se trata de crear métodos para hacer una consulta a una base de datos, o para actualizarla. Por cierto, si tu lenguaje o framework no te parece idóneo para desarrollar una API, otra de las ventajas de las API REST es que puedes utilizar cualquier otro lenguaje y conectar tu aplicación como un cliente más. Las API REST facilitan el desarrollo de arquitecturas distribuidas.

Hay también herramientas capaces de generar automáticamente el esqueleto de una API REST. De esta manera solo tienes que preocuparte por definir qué endpoints tiene y qué parámetros pueden recibir. También el formato de la salida. A partir del código generado solo necesitarás rellenar los métodos para que se ejecuten las acciones deseadas sobre la base de datos.

Alternativas

Casi todas las tecnologías tienen alternativas. API REST no es una excepción. En este caso, tienes disponibles principalmente tres. La primera de ellas es SOAP. Es una tecnología similar a API REST en algunos aspectos, y que puede resultar preferible en algunos casos. La interacción se da exclusivamente por medio de XML, y puede resultar algo compleja. Sobre todo para desarrolladores que no están habituados a ella. Una de sus ventajas es que la propia API facilita información sobre las llamadas que puede procesar, o sobre sus parámetros. Se utiliza mucho en aplicaciones de tipo financiero y en otras que exigen un alto grado de integridad de datos.

Otra de las alternativas es RPC (Remote Procedure Call, que quiere decir llamadas a procedimiento remoto). Es el equivalente a hacer llamadas a funciones que se ejecutan en otra máquina. Es decir, la aplicación utiliza una librería concreta, y las llamadas a métodos se ejecutan en el servidor de forma transparente. No es siempre la solución más rápida, pero al utilizarla con sistemas como gRPC, que hacen las transacciones de datos en formato binario, estos han mejorado notablemente su rendimiento. Es una opción a tener muy en cuenta en arquitecturas de microservicios.

Por último, GraphQL es un sistema basado en esquemas, basado en REST pero que introduce algunas mejoras frente a las implementaciones habituales y que funciona de forma similar a una base de datos. Es similar a un SQL para sistemas remotos. Se trata de un desarrollo liberado por Facebook y que tiene una base de usuarios quizá no tan amplia como API REST o RPC, ni tan “selecta” como la favorita de las aplicaciones financieras, SOAP. A cambio, se trata de una comunidad muy entusiasta, lo que le augura un gran futuro.

En cualquier caso, para la mayoría de necesidades una API REST es una buena solución que tienes que conocer y ser capaz de implementar. Por eso, ¡aprende todos los secretos de las API REST!

Share this post

Comments (0)