Cuando usar una REST API

Alejandro Celada—

Un Web API es una interfaz de programación de aplicaciones que se accede a través de internet utilizando tecnologías web, mientras que un REST API es un tipo específico de Web API que sigue las restricciones y las mejores prácticas definidas por el estilo arquitectónico REST. Sin embargo, los términos "Web API" y "REST API" a menudo se utilizan indistintamente, y muchos APIs que se acceden a través de internet utilizando HTTP se denominan simplemente "Web APIs", independientemente de si se adhieren al estilo arquitectónico REST.
Cuándo usar:
Dependiendo de nuestras necesidades, tendremos que elegir el tipo de metodología o arquitectura que deseamos aplicar a nuestro proyecto. Aquí podemos ver cuándo es más interesante usar uno u otro.
Utilizaremos esta arquitectura de API para proporcionar datos solicitados para un cliente. Para eso, generalmente recomendamos GraphQL, pero hay ciertos criterios en los que REST puede ser superior. Cuando:
- Se extiende una API que es REST y la conversión es costosa.
- REST caché. Fácilmente cacheable desde el servidor o incluso localmente.
- Se requieren cargas de archivos, se admite de forma nativa.
- Cuando se necesita admitir al mismo tiempo múltiples versiones de API
- Cuando se necesita monitoreo y reporte de errores. Usando códigos HTTPS (por ejemplo, 404 o 500). En GraphQL no se tiene eso, porque siempre devuelve una respuesta de estado 200 OK en caso de algún error, deberá mirar el cuerpo de la respuesta.
- Cuando solo se quiere que el cliente (móvil o web) tenga acceso a un dato en particular con un esquema fijo y no permita hacer consultas en los datos. Incluso con el riesgo de sufrir sub-solicitudes o sobre-solicitudes.
- Si desea que los motores de búsqueda indexen su URL (diferentes puntos finales por recurso)
Cuándo no usar:
Es importante mencionar que REST solo se utiliza para operaciones CRUD en los datos. Nunca se puede emplear para invocar acciones sobre otros sistemas, por ejemplo, /resouce/id/doSomething
, ya que no cumpliría con las restricciones REST.
Otras opciones
Recordemos que hay otras opciones a las REST APIs. Tenemos que preguntarnos:
- ¿Cómo se elige qué estilo de API usar?
- ¿Qué estilo de API es el más adecuado para un caso de uso dado?
GraphQL
GraphQL es la opción de estilo de API predeterminada para las API orientadas a la interfaz de usuario.
Mensajería asíncrona (Async Messaging)
Async Messaging es una buena opción para las API que no necesitan responder a una solicitud de inmediato.