¿Cómo usar un cliente GraphQL en un proyecto sencillo?
Embarcarse en el uso de GraphQL puede ser una experiencia transformadora en el desarrollo web, mejorando tanto la eficiencia como la flexibilidad. Para este ejercicio, vamos a utilizar un sencillo proyecto de JavaScript que incorpora un cliente GraphQL. A continuación, sigue un desglose detallado del mismo.
¿Cuáles son los archivos y dependencias necesarias?
Para iniciar, necesitamos algunas dependencias clave y un par de archivos base:
Dependencias:
grazie: este es el cliente GraphQL que usaremos.
handlebars: un popular motor de plantillas que nos ayudará a generar el resultado de las consultas.
Dependencias de desarrollo:
browserify: se utiliza para empaquetar las diferentes dependencias en un solo archivo.
uglify-js: minimiza el archivo empaquetado para optimizarlo.
El sistema de bundling se realiza a través de una tarea en package.json, que transforma el código desde main.js y lo comprime en un bundle ejecutable.
¿Cómo se estructura el HTML del proyecto?
El HTML es bastante sencillo, consistiendo principalmente en un formulario de búsqueda que permite al usuario ejecutar consultas a través de nuestro cliente GraphQL:
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>GraphQL Client Example</title></head><body><formid="searchForm"><inputtype="text"id="queryInput"placeholder="Ingresa tu búsqueda"><buttonid="searchButton">Search</button></form><divid="results"></div></body></html>
Este formulario incluye un campo de texto para la búsqueda y un botón para ejecutar la consulta. Los resultados se renderizan en un div con el id "results".
¿Cómo se configura la lógica en JavaScript?
Toda la magia sucede en nuestro archivo main.js, donde se implementa la lógica principal del proyecto:
Inicializar el entorno y las variables:
Importamos nuestras dependencias y configuramos las variables necesarias, incluyendo el motor de plantillas y el cliente GraphQL.
Crear el template de Handlebars:
Se construye un template básico que se encargará de mostrar los resultados o mensajes de error.
Definir la consulta GraphQL:
Aquí se define la consulta que deseamos realizar, junto con los parámetros requeridos:
Con esta estructura, al presionar el botón de búsqueda se envía la consulta y los resultados se muestran en el área designada.
¿Cómo construir y ejecutar el proyecto?
Finalmente, la ejecución del proyecto requiere compilar el JavaScript utilizando browserify y uglify-js para generar el archivo bundle. Esto se logra desde la línea de comandos con el siguiente comando:
npm run bundle
Este proceso genera el archivo finalizado, que puede ser cargado en un navegador para ser probado.
Recomendaciones
Siempre verifica que la configuración del entorno de desarrollo esté correcta antes de ejecutar operaciones complejas.
Utiliza herramientas de depuración y logs para entender mejor el comportamiento del código.
Asegúrate de que tu servidor GraphQL está correctamente configurado para recibir las consultas desde tu cliente.
Con esta guía y los ejemplos proporcionados, podrás implementar un cliente GraphQL de manera efectiva en tus proyectos, aprovechando las ventajas que esta tecnología ofrece para optimizar la gestión y comunicación de datos. ¡Sigue explorando y aprendiendo, el mundo del desarrollo web está lleno de oportunidades emocionantes!
Falta curso avanzado donde se enseñen algunas cosas que se usan en la vida real.
Asegurar el API
Subir y obtener imagnes
Subir videos y consumir videos.
Organizar en una estructura correcta para proyectos grandes.
Aquietectura para un proyecto de en la vida real.
Esta bien el curso para alguien que no conoce graphql, pero ya existia un curso para ese caso.
Esta pasando mucho, que ahy muchas versiones de cursos del mismo nivel y se repiten lo que ya otros cursos lo ven.
Si no se aporta cosas nuevas, van a ir perdiendo subscriptores.
Gracias por las sugerencias, vamos a tenerlas en cuenta para una versión avanzada del curso, en cuanto a que se repita el temario es porque cambian las versiones de las librerías y en algunos casos cambian la forma de implementar algo si el curso no se actualiza la implementación no va a funcionar y todo va a fallar por eso se actualizan los cursos aproximadamente una vez al año.
Lo de las actualizaciones esta muy bien, pero tambien deben tener en cuenta que habemos suscriptores permanentes que esperamos seguir avanzando en nuestros conocimientos entonces si ya sabemos lo basico tambien queremos algo avanzado por que si no es ahi donde uno piensa en dejar la plataforma para ir buscando otra con cosas avanzandas y poder seguir subiendo nuestro nivel. :) BTW El curso esta excelente.
Muy bueno curso, como dicen algunos compañeros... creo que Platzy debe apostarle a meter un curso de GQL avanzado enfocado a entornos profesionales más allá del Happy Path.
esperemos que el nuevo curso que sale el 4 de enero incluya cosas mucho más complejas de entornos reales. este curso me sirvió para hacer una implementación con sql server fue genial poder aplicar los conocimientos con esa base de datos
Esta genial este curso! complementado al de react avanzado, puedo sentir un level up en mis habilidades muy grande! ahora toca practicar con proyectos reales para poder fijar realmente lo aprendido.
Por si a alguien le sirve a los fines que todo corriera bien sin errores de versiones antes de correr npm install le quite a las librerias del "frontend-simple" los ^ y funciona :)
Mi package.json quedo asi
{"name":"graphql-front","version":"1.0.0","description":"","main":"index.js","scripts":{"bundle":"browserify -g uglifyify js/main.js > js/bundle.js","test":"echo \"Error: no test specified\" && exit 1"},"author":"edsadr","license":"MIT","dependencies":{"graphql-request":"1.8.2","handlebars":"4.1.1"},"devDependencies":{"browserify":"16.2.3","uglifyify":"5.0.1"}}
Qué raro. El proyecto me funciona tal como está adjunto. Lo que si pasa es que cuando uno ejecuta por primera vez npm install (para crear la carpeta node_modules) si me pide que actualice las dependencias con npm audit fix --force. Así, cuando voy a volver a ejecutar el archivo package.json queda así:
{"name":"graphql-front","version":"1.0.0","description":"","main":"index.js","scripts":{"bundle":"browserify -g uglifyify js/main.js > js/bundle.js","test":"echo \"Error: no test specified\" && exit 1"},"author":"edsadr","license":"MIT","dependencies":{"graphql-request":"^3.5.0","handlebars":"^4.1.1"},"devDependencies":{"browserify":"^16.2.3","uglifyify":"^5.0.1"}}
Luego, si ejecuto el comando npm run bundle para generar nuevamente el bundle.js y funciona correctamente.