GraphQL es una metodología de comunicación por HTTP que viene a revolucionar el mercado sustituyendo al actual sistema RESTful. Ya hace un tiempo que entre la comunidad de desarrolladores se aboga por sustituir REST por GraphQl, especialmente en el ecosistema de API’s para app en móviles, como puede verse en este extenso post en Genbeta de 2016 “¿Por qué deberíamos abandonar REST y empezar a usar GraphQL en nuestras APIs?”
Actualmente el patrón más utilizado para la comunicación asincrónica es el REST que, aunque funciona realmente bien, tiene varios puntos negativos, sobre todo en aplicativos grandes o con una tasa de escalabilidad muy alta, como son:
- Mala Documentación o desactualizada.
- Peticiones con respuestas demasiado grandes.
- Varias peticiones simultáneas o consecutivas.
- Ausencia de tipos.
- Evolutivos sin versionado.
Con GraphQL veremos que se nos brinda un gran potencial para construir API’s grandes y robustas, sin empeorar su escalabilidad y su mantenimiento, ya que dispone de documentación automática directamente entrelazada con el desarrollo, un control exhaustivo de la cantidad de datos que realmente necesitamos en cada petición, así como múltiples peticiones a lo que serían diferentes endpoints pero de una sola vez. Si a todo esto le sumamos que es altamente tipado y con un esquema inicial obligatorio, obliga a grandes equipos a mantener el control y organización de sus servicios HTTP.
Además, esta solución es muchas veces elegida como middleware de API’s antiguas que necesitan ser unificadas, ya que aporta una gran organización a entornos caóticos.
Con GraphQL se nos brinda un gran potencial para construir API’s grandes y robustas, sin empeorar su escalabilidad y su mantenimiento
A continuación se puede ver el video de una de nuestras “Interacso Talks” en la que nos introducimos en el funcionamiento de GraphQL. En él veremos cuáles son sus fundamentos, sus puntos fuertes, sus recomendaciones, proyectos objetivo y finalidades al mismo tiempo que montamos un BackEnd y FrontEnd de forma práctica y paso por paso viendo alguna de sus implementaciones más básicas o el uso de librerías y frameworks como la familia APOLLO y su integración con REACT.