¿Qué es una API de RESTful?

Uno de los tipos de API más populares son las API de REST, a veces llamadas APIs de RESTful. Son muchas las ventajas de las API de REST o RESTful, pues están diseñadas para aprovechar los protocolos existentes. Si bien el modelo REST, o de transferencia de estado representacional, se puede utilizar con prácticamente cualquier protocolo, cuando se utiliza para APIs web se suele recurrir a HTTP. De esta manera, los desarrolladores no tienen que instalar software ni bibliotecas adicionales al crear una API de REST.

Una de las principales ventajas de las API de REST es que proporcionan una extraordinaria flexibilidad. Como los datos no están limitados a métodos y recursos concretos, REST es capaz de gestionar numerosos tipos de llamadas, devolver diferentes formatos de datos e incluso cambiar a nivel estructural, si se ha dado una implementación correcta de los hipermedia. Esta flexibilidad permite que los desarrolladores creen una API que satisfaga tanto las necesidades de la organización como las de los clientes más diversos. 

Hay 6 condiciones clave que deben tenerse en cuenta al considerar si una API de RESTful es el tipo de API correcto para las necesidades propias:

  • Cliente-servidor: esta condición parte de un concepto por el que el cliente y el servidor deben ser independientes entre sí y capaces de evolucionar cada uno por su cuenta.
  • Sin estado: las API de REST carecen de estado, lo que significa que pueden realizarse llamadas independientes entre sí y que cada una contiene todos los datos necesarios para llevarse a cabo correctamente.
  • Caché: puesto que una API sin estado puede incrementar la sobrecarga de solicitudes al gestionar grandes cantidades de llamadas entrantes y salientes, las API de REST deben diseñarse de forma que fomenten el almacenamiento de datos en caché.
  • Interfaz uniforme: la clave para desvincular al cliente del servidor es contar con una interfaz uniforme que permita la evolución independiente de la aplicación sin necesidad de que sus servicios, modelos y acciones estén estrechamente vinculados a la capa de APIs.
  • Sistema con capas: las API de REST presentan diferentes capas de arquitectura que funcionan juntas para montar una jerarquía y, con ella, aplicaciones más escalables y modulares.
  • Código bajo demanda: esta condición permite transmitir código o applets a través de la API para su uso dentro de la aplicación.

A diferencia de SOAP, REST no se limita a XML, ya que puede devolver XML, JSON, YAML o cualquier otro formato en función de lo que desee el cliente. También contrasta con RPC, ya que los usuarios no están obligados a conocer los nombres de los procedimientos ni los parámetros específicos en un orden concreto.

Una de las desventajas de las API de REST es que se puede perder la capacidad de mantener un estado en REST (por ejemplo, dentro de las sesiones). Así, pueden resultar más difíciles de usar para los desarrolladores novatos.

Es importante entender qué factores hacen que una API de REST sea RESTful y por qué estas condiciones son previas al desarrollo de la API.