Hola, y bienvenidos a esta charla sobre cómo construir un servidor GraphQL utilizando Fastify y Mercurius.
Así que, en primer lugar, permítanme presentarme. Soy Luca Del Pupo, un desarrollador de software científico en Neo4m y un entusiasta de JavaScript y Typescript. En mi tiempo libre, intento llevar adelante mi canal de YouTube y también escribo publicaciones técnicas para personas de tecnología. También me encanta correr, hacer senderismo y las mascotas, pero ahora es hora de adentrarnos en el tema de hoy.
¿Por qué GraphQL? Básicamente, cuando comenzamos a trabajar con API, comenzamos con SOA y luego pasamos a la API REST , pero solo servimos aplicaciones de escritorio o aplicaciones de navegador de escritorio. Pero hoy en día, tenemos que servir diferentes tipos de dispositivos, como móviles, relojes inteligentes y televisores. Y en algunos casos, la API REST es una limitación. Por ejemplo, cada dispositivo tiene su propia interfaz de usuario y diferentes necesidades, porque la computadora de escritorio tiene una pantalla grande, el móvil tiene una pequeña y el reloj inteligente tiene una bastante, bastante pequeña. Entonces, la información que puedes mostrar en este tipo de dispositivo es diferente. Y básicamente, lo que sucede es que el móvil necesita un subconjunto de los datos que se necesitan en la aplicación de escritorio, y lo mismo ocurre con el reloj inteligente. Y lo que sucede es que básicamente, la gente comienza a crear puntos finales específicos solo para eliminar los campos que no se necesitan, para mejorar también el rendimiento de la aplicación móvil y el tiempo que el servidor tiene que pasar para serializar y deserializar los datos.
Otro problema es que si estás en el navegador, tu navegador tiene una limitación en el tiempo de solicitud en el mismo momento en paralelo, y el número es 10. Entonces, en algunos escenarios, esto también es otra limitación que no puedes evitar si estás utilizando una API REST. Y este es Bill. Bill es un desarrollador junior de backend que lucha todos los días con el frontend y el móvil para construir un punto final específico para una sola vista que necesitan. Bromas aparte, la API REST no es un desastre, pero en algunos escenarios, no son la mejor solución para tu aplicación. Y por eso Facebook, ahora Meta, ha creado GraphQL.
GraphQL es un lenguaje de consulta que te permite crear un tipo de servidor que sirve diferentes tipos de dispositivos. Y si eres un buen desarrollador y lo construyes de la manera correcta, puedes utilizar solo un servidor y crear solo una API y servir diferentes tipos de dispositivos como escritorio, móvil, reloj inteligente, etc. GraphQL es bastante simple. Básicamente, contiene un esquema. Un esquema es como tu API abierta, ¿de acuerdo? Y dentro, puedes definir las consultas que son la forma de recuperar datos del servidor. Puedes definir mutaciones que son la forma de actualizar datos, eliminar datos o agregar datos en tu servidor. Y también hay suscripciones. También hay suscripciones que te permiten suscribirte a un evento. Y cuando algo sucede en el servidor, el servidor emitirá este evento y el cliente tal vez pueda reaccionar de alguna manera. No lo sé. Puedes usar una mutación para agregar un elemento al carrito. Y cuando esto sucede, puedes modificar el cliente que está suscrito a este evento.
Comments