Construyendo una API GraphQL sin servidor para cualquier fuente de datos con StepZen

Rate this content
Bookmark

¿Quieres empezar a construir un servidor GraphQL pero no tienes idea de por dónde empezar? Cada desarrollador (frontend) pide una API GraphQL pero a menudo carece del conocimiento backend para crear una que sea eficiente. Existen muchas formas diferentes de crear el servidor GraphQL perfecto, desde el enfoque de esquema primero hasta el enfoque de código primero o incluso soluciones generadas automáticamente.

En este masterclass interactivo, aprenderás a construir una API GraphQL sin servidor utilizando StepZen. Con StepZen, puedes crear un GraphQL para cualquier fuente de datos (SQL, NoSQL y REST) e incluso otras APIs GraphQL en cuestión de minutos. Incluso puedes manejar casos de uso más complicados como la autenticación y el despliegue. Con un poco de código, podrás combinar diferentes fuentes de datos en una API totalmente eficiente que podrás utilizar en tus aplicaciones desde el primer día.

Tabla de contenidos:
- ¿Qué es StepZen?
- Conexión a una fuente de datos (SQL, NoSQL y REST)
- Uso de directivas personalizadas
- Manejo de flujos de secuencia
- Despliegue

75 min
02 Dec, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

El masterclass de hoy trata sobre la construcción de una API GraphQL sin servidor utilizando StepZen. Cubre los enfoques de código primero y esquema primero, la conexión de múltiples fuentes de datos, la fusión de datos de diferentes puntos finales y el uso de secuencias de StepZen para combinar datos. El masterclass también destaca la importancia de comprender StepZen y GraphQL para construir servidores GraphQL escalables.

Available in English

1. Introducción al taller de API de GraphQL sin servidor

Short description:

El taller de hoy tratará sobre la construcción de una API de GraphQL sin servidor utilizando una herramienta llamada Stepsen. Puedes crear una API de GraphQL para cualquier fuente de datos, como MySQL o Postgres. Si no tienes Docker, puedes usar ng-work para crear un puerto remoto a tu sistema local. Si no tienes experiencia con GraphQL, no te preocupes. Haré una breve presentación, explicaré las tareas, te mostraré dónde encontrar el código y cómo ejecutar Docker. Luego podrás comenzar a construir una API de GraphQL. Tendremos salas de grupos pequeños para hacer preguntas. Usa Zoom para preguntas generales y Discord para preguntas técnicas o compartir enlaces.

Hola a todos. Gracias por unirse. Veo que ya compartieron mi pantalla. Creo que todos también pueden escucharme. Eso es bueno. Entonces, el taller de hoy tratará sobre la construcción de una API de GraphQL sin servidor y lo haremos utilizando una herramienta llamada Stepsen. Con esta herramienta, puedes crear una API de GraphQL para cualquier fuente de datos. No sé si viste los requisitos previos para el taller de hoy. Entonces, si quieres trabajar con MySQL o Postgres hoy, necesitarás tener Docker instalado en tu máquina. Si aún no tienes Docker en tu máquina, ahora es un buen momento para instalarlo. También necesitarás ng-work. Eso es algo que usaremos para crear un puerto remoto a tu sistema local, porque así es como funciona Stepsen, acepta conexiones remotas. Esa puede ser tu base de datos. Puede ser una API REST existente, una API de GraphQL existente y construir una API de GraphQL sin servidor sobre esas fuentes. Por eso también necesitamos ng-work para exponer todas las bases de datos locales que estás ejecutando con Docker a la red remota. Pero depende de ti si no tienes Docker instalado, o tal vez no sabes cómo usar Docker, que en realidad no es necesario. No necesitas entender cómo funciona Docker. Solo necesitas instalarlo y ejecutar un comando. Y luego deberías poder ejecutar la base de datos en tu propio sistema. Pero si no quieres usar Docker, no quieres usar una base de datos, entonces puedes usar una API REST, que también te proporcionaré más adelante una vez que vayamos a las tareas. Eso es para empezar. Espero que todos estén ansiosos por esto, por este taller. Si no tienes experiencia con GraphQL todavía, eso también está perfectamente bien. Por favor, avísame en el chat. Así tengo una idea de cuántas cosas debo explicar y cuántas no debo explicar. Eso será útil para todos, creo. Entonces, tendremos más tiempo para construir código. Y luego tendré más tiempo para ayudarte con cualquier pregunta que tengas. Entonces, si tienes alguna pregunta sobre GraphQL, por favor usa Discord o el chat para hacer preguntas durante esta presentación. Esa será también la forma en que lo haremos. Primero haré una breve presentación. Creo que durará aproximadamente 20, 25 minutos. Luego explicaré las tareas. Te mostraré dónde encontrar el código que usaremos hoy. Te mostraré cómo ejecutar Docker. Y luego podrás comenzar a construir una API de GraphQL. Y luego probablemente te pondré en, veamos, somos alrededor de 20 personas aquí. Probablemente te pondré en cuatro o cinco salas de grupos pequeños. Así tendrás grupos más pequeños para hacer preguntas entre ustedes también. Y puedo entrar y salir de diferentes salas de grupos pequeños. Así que espero que todo esté claro. Si no es así, simplemente usa el chat y Zoom para hacer preguntas. Tal vez para preguntas más técnicas, sea más fácil usar Discord porque las personas pueden responder y no perderemos las respuestas. Esa es una buena característica de tener Discord. Es más fácil enviar enlaces allí porque ya estás en un navegador. Así que usa Zoom si tienes alguna pregunta sobre las cosas que te estoy diciendo en este momento, y usa Discord si tienes alguna pregunta técnica o quieres

2. Construyendo una API de GraphQL sin servidor con StepZen

Short description:

El taller de hoy tratará sobre la construcción de una API de GraphQL sin servidor utilizando StepZen sobre tus fuentes de datos existentes. Construir una API de GraphQL es fácil para empezar, pero la escalabilidad puede ser un desafío. Esta charla cubrirá los servidores de GraphQL, cómo crearlos y la escalabilidad. StepZen es una herramienta que te permite crear APIs de GraphQL sobre fuentes de datos existentes. Hay varias razones para construir un servidor de GraphQL, como optimizar las solicitudes del cliente, trabajar con microservicios y envolver servicios heredados. Hay varias formas de crear servidores de GraphQL, incluyendo construir desde cero o utilizar bibliotecas como Prisma, Apollo o StepZen.

compartir enlaces con otras personas. Entonces, Discord podría ser más fácil. Entonces, ¿de qué se trata hoy? Vamos a construir una API de GraphQL sin servidor utilizando StepZen sobre tus fuentes de datos existentes, y probablemente todos tengan diferentes razones para unirse a este taller, y tal vez si tenemos tiempo más adelante, también podamos hablar sobre sus proyectos un poco, probablemente cuando los coloque en sus salas de grupos.

Entonces, ¿para quién es esta charla? Y este taller también. Lo que a menudo veo suceder, y he construido muchas APIs de GraphQL en mi tiempo. Comencé con GraphQL en 2016 cuando se convirtió en una biblioteca pública, y lo primero que siempre veo al construir APIs de GraphQL, es súper fácil comenzar. Si quieres, puedes tener una API de GraphQL en funcionamiento con cosas como Apollo o Prisma o cualquier otra biblioteca de GraphQL que exista, básicamente en un par de horas, puedes conectar tus fuentes de datos existentes, puedes conectar APIs REST o APIs de GraphQL, y es súper fácil construir esa primera API de GraphQL. Pero luego, una vez que comienzas a escalar las cosas, a menudo descubro, y también escucho esto todo el tiempo de diferentes equipos de ingeniería, que es bastante difícil escalar una API de GraphQL si no tienes todo el conocimiento sobre GraphQL, si no sabes cómo funcionan los grafos, si no sabes cómo los datos están relacionados entre sí. Entonces, construir una API de GraphQL probablemente sea fácil, construyes tu esquema, construyes tus primeros cinco resolvers. Pero después de eso, las cosas se complican porque ahí es donde realmente necesitas el conocimiento profundo de GraphQL, donde necesitas el conocimiento sobre bases de datos, necesitas el conocimiento sobre sistemas subyacentes. Y la escalabilidad para las APIs de GraphQL siempre es complicada. Si buscas en internet, hay toneladas de pruebas de rendimiento para bibliotecas existentes de servidores de GraphQL, para averiguar cuál es la más rápida. Y eso depende básicamente del motor de GraphQL de esos sistemas. Qué tan rápido es su motor, qué tan rápido son capaces de analizar el lenguaje de consulta de GraphQL, y qué tan rápido son capaces de recuperarlo de las fuentes de datos subyacentes. Y así, para una pequeña API de GraphQL, es súper fácil. Si crece, se vuelve más grande, la escalabilidad realmente se acerca sigilosamente. Así que en esta charla hablaremos sobre servidores de GraphQL, cómo crearlos y la escalabilidad. Y luego después de esta breve charla de unos 20 minutos, comenzaremos a trabajar, construyendo algo de código. Un poco sobre mí. Mi nombre es Roy, puedes encontrarme en Twitter con el nombre de usuario @githackteam. Si aún no estás en Twitter, es súper útil para compartir información con otros, especialmente en el mundo tecnológico. Al menos para mí, me ha enseñado mucho usar Twitter. Hay mucha basura allí, pero también hay mucha información útil. Así que si aún no tienes Twitter, crea una cuenta y comienza a interactuar con otras personas de tecnología porque es muy útil para ti. Trabajo en una empresa llamada StepZen y StepZen es la herramienta que utilizaré hoy, y con ella puedes crear APIs de GraphQL sobre fuentes de datos existentes. Es posible que también me conozcas por mis libros, mis otras charlas, hace aproximadamente un año publiqué un libro, Full Stack GraphQL. Así que si después de esta charla piensas que StepZen no es la herramienta para ti y quieres construir un servidor completamente, hazlo tú mismo desde cero y escalarlo a muchos usuarios, definitivamente pregúntame sobre el libro más adelante hoy, porque allí verás cómo construir un servidor tú mismo explícitamente desde cero, construir todos los resolvers tú mismo, construir todo el esquema tú mismo, construir middleware, construir contexto, todas estas cosas que pueden ser bastante complejas. Todo está explicado en el libro.

Entonces, si estás en este taller, probablemente también te preguntes ¿por qué estoy en este taller? ¿Qué quiero obtener de esto? Probablemente quieras construir un servidor de GraphQL. Durante este taller, quieres saber cómo puedes tomar conceptos existentes, patrones existentes y aplicarlos a tu propio proyecto o tal vez simplemente te interesa GraphQL, lo cual también está perfectamente bien. Entonces, hay varias razones para construir un servidor de GraphQL. Por lo general, los equipos que comienzan a construir un servidor de GraphQL tienen experiencia con otras APIs como REST, gRPC o SOAP, y quieren tener un servidor de GraphQL para optimizar las solicitudes del cliente. Ese es uno de los casos de uso más comunes que veo para GraphQL, las personas quieren optimizar la solicitud del cliente. Entonces, tienes un cliente, tal vez tienes varios clientes, por supuesto, están enviando solicitudes de red a tu API, a tu base de datos, a cualquier cosa que exponga una API, y quieres optimizar esas solicitudes porque tal vez hay muchas personas usando tus clientes, o tal vez hay muchas personas enviando solicitudes, así que quieres optimizar estas cosas. Entonces, GraphQL es perfectamente adecuado para optimizar las solicitudes del cliente. Otro caso de uso común es microservicios, así que imagina que tal vez tienes 3, 4, 5, 6, tal vez decenas de microservicios. Todos tienen su propia API, puede ser REST, también puede ser GraphQL, y quieres fusionar esas cosas en una capa de datos o una puerta de enlace de API. Y eso es algo en lo que GraphQL es perfectamente bueno. Es algo que StepZen también puede hacer, hay un gran blog en nuestro sitio web sobre cómo puedes hacer esto con StepZen, cómo puedes crear una capa de datos o una puerta de enlace para tus microservicios. Esto también es algo para lo que GraphQL es útil. Y luego, por supuesto, tienes servicios heredados, y esto no es específico de GraphQL en sí, pero es algo que StepZen y otras herramientas hacen muy bien, crear una capa alrededor de tus servicios heredados existentes para que no tengas que preocuparte por romper cosas al cambiar cosas en un servicio heredado, porque en su lugar construirás una API de GraphQL basada en esos servicios heredados para que no tengas que preocuparte por cambiar el código heredado porque no lo necesitas. En su lugar, construyes una API de GraphQL sobre él, que es completamente eficiente y te ayuda a escalar los servicios heredados existentes, y luego uno por uno migrar cosas fuera de allí. Estos son casos de uso. Entonces, ya sea optimizar las solicitudes del cliente, trabajar con microservicios o envolver servicios heredados. Estas son cosas para las que GraphQL es perfectamente bueno. Y si quieres construir una API de GraphQL, hay varias formas de hacerlo, y esto es algo que mencioné brevemente en la introducción. Hay varias formas de crear servidores de GraphQL. Hay toneladas de bibliotecas disponibles. Puedes construirlo desde cero tú mismo, tal vez algo como Prisma o Apollo o Fastify, o puedes usar algo como StepZen para generar uno para ti basado en tus servicios de datos existentes. Y hay razones

3. Enfoques Code-first y Schema-first

Short description:

El enfoque code-first implica escribir resolvers y generar un esquema basado en ellos, pero carece de separación de preocupaciones. El enfoque schema-first o SDL-first te permite escribir tu propio esquema y resolvers, brindando un control completo pero requiriendo más trabajo y corriendo el riesgo de problemas de sincronización. StepSense ofrece una solución al permitirte crear una API de GraphQL directamente desde tu esquema, generando resolvers basados en directivas personalizadas. Esto elimina la necesidad de construir resolvers y esquemas manualmente.

para usar todos estos patterns. Hay varias formas de hacerlo. Y cada equipo es diferente. Cada empresa es diferente. Así que se trata de qué enfoque se adapta mejor a tu empresa. El primer enfoque del que quiero hablar contigo es el servidor code-first de GraphQL. Y este enfoque es especialmente popular entre las personas que utilizan cosas como TypeScript u otros lenguajes de tipo, porque con un servidor code-first de GraphQL, comienzas escribiendo código. Entonces lo primero que haces es definir tipos para tus resolvers, escribir tus resolvers y luego basándote en esas cosas, se genera automáticamente un esquema. Esto es típicamente lo que hace un paquete de servidor code-first de GraphQL. Te ayuda a crear algo code-first mediante la construcción de resolvers, generando un esquema basado en la lógica del resolver que construiste. Y luego, por supuesto, te permitirá construir un servidor GraphQL utilizando tanto los resolvers que construyas tú mismo como el esquema que se generó para tus resolvers. Un buen ejemplo de esto podría ser Type GraphQL, que es una muy buena biblioteca para construir tu propio servidor code-first de GraphQL. Y lo que haces allí es definir tipos, definir resolvers y luego esos tipos son, por supuesto, los tipos de retorno para estos resolvers, y luego se generará un esquema. Y creo que NestJS, no NextJS con una X, sino NestJS con una S. También han creado un marco de API, y una de las cosas que puedes hacer es crear una API de GraphQL con ese marco. También tienen un enfoque code-first para GraphQL. Entonces no escribes tu propio esquema, escribes tus propios resolvers y el esquema se genera para ti. Y esto es realmente genial, pero también es difícil tener una separación de preocupaciones. Así que tienes tus resolvers, tienes tipos para los resolvers y luego genera el esquema para ti, lo cual es realmente genial, pero también no te da la separación de preocupaciones, porque tu esquema está muy acoplado con tus resolvers. Entonces, si cambias algo en tus resolvers, tu esquema cambiará, lo que puede ser problemático si tienes varios equipos trabajando en cosas, es posible que tengas varios clientes que usen tu API. Entonces, cada vez que algo cambie en tus resolvers, el esquema cambiará, lo que podría romper tu API. Pero también, tal vez otro equipo esté cambiando algo en tus resolvers, lo que luego romperá tu esquema y romperá los clientes de otros usuarios. Así que es algo a tener en cuenta al trabajar code-first. Es un enfoque realmente bueno para equipos más pequeños o para microservicios. Pero si tienes una API de GraphQL monolítica, es un poco más difícil hacer este enfoque. Por lo tanto, no tener una separación de preocupaciones podría ser una razón para no utilizar el enfoque code-first. Y por eso también existe el enfoque SDL-first o schema-first para construir servidores de GraphQL. Y hay literalmente dos cosas, por lo que tienes schema-first que básicamente es escribir tu esquema primero. Y luego tienes SDL-first que es escribir tu esquema primero en el lenguaje de diseño del servidor GraphQL. Así que es una diferencia sutil. Básicamente es lo mismo, pero las bibliotecas que ofrecen estos servicios son un poco diferentes. Entonces tienes schema-first, que es construir un esquema de cualquier manera que desees. Puedes construir un esquema con GraphQL SDL, lenguaje de diseño de esquema, o puedes construir un esquema tal vez programáticamente con otros frameworks. El enfoque schema-first SDL-first, todo comienza con escribir tu esquema. Entonces debes escribir tu esquema, puedes definir tus tipos de GraphQL allí, puedes definir relaciones, como operaciones como consultas, operaciones. Y luego también escribes tus propios resolvers. Entonces no solo escribes tu esquema, también escribes tus propios resolvers y luego los colocas juntos y creas tu servidor GraphQL. Y esto es realmente genial porque te da un control completo de todo. Entonces escribes tus esquemas, construyes tus resolvers y luego creas un servidor. Está muy desacoplado, por lo que varios equipos pueden trabajar en diferentes cosas, incluso puedes generar tipos a partir de tu esquema y usarlos nuevamente en tu resolver. Por lo tanto, está muy desacoplado, pero también es mucho trabajo porque escribir tanto resolvers como esquemas es mucho trabajo. También existe el problema de que estas cosas pueden desincronizarse. Tal vez un equipo realiza un cambio en tu esquema mientras que el otro equipo cambia los resolvers. Si estas cosas no están alineadas, si no están sincronizadas, puede provocar errores, puede provocar la rotura de cosas, además de que también es un trabajo considerable. Como dije, construir el servidor GraphQL con tus primeros cinco resolvers o tal vez una o dos operaciones es bastante fácil, pero escalar realmente la cosa y hacerla más grande para usarla es algo que puede ser un poco más problemático. Pero, por supuesto, también hay una solución, y como siempre, hay múltiples soluciones, y la solución que usaremos hoy es StepSense. Con StepSense, puedes crear una API de GraphQL directamente desde tu esquema. Entonces, en lugar de construir resolvers y esquemas tú mismo, solo puedes escribir el esquema y los resolvers se generarán para ti. Por lo tanto, es comparable al enfoque schema-first o SDL-first. Escribes tu esquema y en tu esquema utilizarás directivas personalizadas para indicarle a GraphQL de dónde provienen los datos. Entonces, cada operación o cada tipo puede tener su propia directiva personalizada que define de dónde provienen los datos y en función de esto se generarán los resolvers y un

4. Simplificación de la conectividad del backend con StepZen

Short description:

StepZen te permite construir una API de GraphQL sin servidor definiendo tu esquema con directivas personalizadas. Puede inspeccionar tu fuente de datos, generar resolvers y proporcionar una API de GraphQL sin servidor de alto rendimiento. StepZen funciona con diversas fuentes de datos, incluyendo bases de datos SQL, APIs REST y APIs de GraphQL existentes. Puedes conectar cualquier backend o fuente de datos utilizando directivas personalizadas. StepZen se encarga del despliegue, convirtiéndolo en una solución orientada a la nube. Admite GraphQL SDL, lo que te permite definir y conectar fuentes de datos sin escribir resolvers. Los ejemplos muestran cómo conectar MySQL, Postgres y APIs REST. StepZen también admite la conexión de otras APIs de GraphQL y ofrece federación.

Así que hemos construido un motor de GraphQL para ti. En realidad, como usuario, no lo ves porque está construido en Go, se ejecuta sin servidor, se ejecuta en algún lugar de la nube, pero lo único que ves como usuario son los pasos que das y lo que ves es el lenguaje de diseño del esquema de GraphQL. Entonces construyes tu esquema de GraphQL con directivas personalizadas, defines de dónde provienen los datos y luego, en función de esas fuentes de datos, construiremos los resolvers y el servidor para ti.

Entonces, lo que estamos haciendo por ti con nuestro propio servicio es hacer una introspección en tu fuente de datos. Si defines que una consulta u otra operación proviene de una base de datos, haremos una introspección en la base de datos, veremos cómo se ve tu base de datos, veremos las tablas y luego nos aseguraremos de que los datos se obtengan de manera eficiente. Hacemos lo mismo para las APIs REST, intentaremos hacer una introspección, veremos si hay alguna especificación de API escrita y luego utilizaremos esa especificación de API para asegurarnos de que tu esquema esté alineado con tu fuente de datos. Y podemos hacer esto para MySQL, Postgres, APIs REST y también APIs de GraphQL existentes. Entonces, si ya tienes APIs de GraphQL y quieres fusionarlas, tal vez hacer alguna combinación de esquemas o federación, puedes usar StepZen para esto. Y si tienes alguna pregunta sobre cómo funciona el motor de GraphQL, puedo explicártelo más adelante.

Como dije, tenemos directivas personalizadas. Tenemos aproximadamente tres directivas personalizadas para conectar tu fuente de datos. Puede ser una directiva ADBQuery, que funciona con bases de datos SQL como Postgres y MySQL, pero también con otras cosas como MariaDB y cualquier tipo de SQL que tengas. Luego tenemos una directiva para APIs REST, que se llama addREST. Por lo tanto, se puede utilizar cualquier API REST, pero también con bases de datos NoSQL que exponen una API REST, porque hay muchas bases de datos NoSQL que ya tienen APIs REST. También puedes conectarlas utilizando esta directiva. Y luego, por supuesto, la directiva addGraphQL, que es perfectamente válida si quieres hacer cosas como federación, o tal vez quieres conectar otros backends que exponen una API de GraphQL dentro de tu infraestructura existente, que podría ser SQL, APIs REST o bases de datos NoSQL con una API REST. Por lo tanto, las posibilidades son bastante infinitas aquí. Puedes conectar cualquier backend o fuente de datos utilizando estas directivas personalizadas. Y luego, la magia que hacemos por ti es asegurarnos de que sea eficiente mediante la introspección de tu fuente de datos, asegurándonos de que lo que defines en tu esquema se genere de manera eficiente en GraphQL. Y luego también te ofrecemos una API de GraphQL sin servidor de alto rendimiento. Por lo tanto, realmente es una solución orientada a la nube. No tienes que preocuparte por el despliegue porque nosotros nos encargamos de ello. En lugar de que tú tengas que desplegarlo en otro lugar, tal vez en algún lugar como Verso, o Heroku, incluso en Google Cloud, nosotros nos encargamos de todas estas cosas por ti. Por lo tanto, no tienes que preocuparte por ellas. Si eres una empresa, por supuesto, también podemos asegurarnos de que puedas alojarlas tú mismo si eso es lo que realmente quieres. Eso, por supuesto, depende de ti como usuario de la empresa. Pero si eres un usuario regular y solo quieres construir algo realmente bueno con GraphQL, tal vez tienes una startup interesante o estás creciendo, no estás en el mundo empresarial todavía. O tal vez estás perfectamente bien con que nosotros nos encarguemos de todos los despliegues por ti, entonces esta es realmente la forma de hacerlo. Y StepZen funciona utilizando solo GraphQL SDL. Por lo tanto, si vemos algunos ejemplos, no tienes que escribir ningún resolver. En su lugar, solo escribes un esquema, lo escribes todo en el lenguaje de diseño del esquema de GraphQL. Y luego puedes definir y conectar todas estas fuentes de datos, crear tus operaciones allí, crear tus tipos. Se ve más o menos así. Entonces, en el lado izquierdo, tendrías un ejemplo para MySQL o Postgres, y en el lado derecho para REST. Puedes ver que estamos utilizando directivas para conectar estas operaciones. Puedes ver que tenemos una base de datos MySQL o una base de datos Postgres, tenemos un tipo país en nuestro esquema. Hay dos campos, también tenemos dos operaciones para encontrar uno para obtener una lista de países, o uno para obtener un país por su código de país. Y puedes ver que estos datos provienen de, provienen de mi base de datos MySQL en el lado izquierdo. Y ahora puedes ver que estamos obteniendo todos los países, simplemente hemos definido nuestro tipo, que es MySQL, y luego nuestra tabla, que es la tabla países, y luego para la segunda operación puedes ver que también se define una consulta. Por lo tanto, también puedes tomar el control de esto tú mismo. En lugar de que nosotros nos encarguemos de enviar las consultas a tu base de datos, también puedes definir qué consultas se deben ejecutar para obtener estos datos. Y esto es realmente para usuarios avanzados porque hemos construido este motor. Y nos hemos asegurado de que los datos lleguen de la manera más eficiente. Pero, por supuesto, si quieres tener más control, eso es algo que está disponible para ti. Y en el lado derecho, puedes ver el mismo esquema. En lugar de usar MySQL, los datos provienen aquí de una API REST existente. Puedes ver el punto final, myapi.com/paises, es un punto final de API REST que devuelve una lista de países. Y luego, por supuesto, también puedes definir el código tú mismo agregándolo a la URL. Estas son dos formas de crear una conexión desde un esquema de GraphQL con StepZen hacia la base de datos MySQL, Postgres o la API REST existente. Y luego puedes conectar cualquier backend utilizando directivas. Por supuesto, también puedes conectar otras APIs de GraphQL como fuente de datos. Esto es particularmente útil si deseas hacer algo como federación, y StepZen también admite la federación.

5. Construyendo un Servidor con StepZen

Short description:

StepZen te permite utilizar federación sin alterar los servicios subyacentes. Solo dinos de dónde vienen los datos y los fusionaremos en un esquema para todos los servicios federados. Puedes ejecutar StepZen Start para generar un esquema y servidor de GraphQL basado en tu esquema. Solo necesitas el lenguaje de diseño del esquema de GraphQL para crear una API de GraphQL, independientemente del lenguaje de programación. StepZen admite la fusión de APIs de terceros o SaaS, lo que te permite conectarlas con tus propias APIs o bases de datos. Explora GraphQL Studio en graphql.stepzen.com para encontrar combinaciones de APIs seleccionadas y crear un servidor. Consulta stepsin.com/docs para obtener información sobre el taller y guías de inicio rápido. Únete a Stepsin Discord para comunicarte y recibir soporte durante el taller.

Ofreciendo federación. Es un poco diferente a la federación que podrías conocer de otras empresas. Pero en lugar de eso, nos aseguraremos de que los data que tienes aquí se aprovechen de manera más eficiente y solo utilizando GraphQL SDL. Entonces, si quieres usar la federación con StepZen, no necesitas alterar ningún servicio subyacente. En cambio, solo dinos de dónde provienen los data y luego nos aseguraremos de fusionar los data y darte un esquema para todos estos servicios federados. Para darte una idea de cómo se ve esto. Este es aproximadamente un ejemplo. Tienes un tipo, tienes los campos, tienes las operaciones y luego solo ejecutas StepZen Start desde tu terminal. Y luego generará un esquema de GraphQL, un servidor de GraphQL basado en el esquema. Por lo tanto, finalmente lo implementará por ti. Creará un ejemplo de host local para ti. Y, por supuesto, también podemos agregar otros tipos. Agregar un tipo de lenguaje y luego podemos conectar estas cosas a un tipo creado previamente. Y incluso puedes crear más operaciones. Y cada vez que presiones Guardar, así que déjame presionar Guardar aquí, sí, comenzará a implementarse nuevamente. Así que una vez que guardo esto, comienza a implementarse y crea una nueva versión del servidor que acabo de crear. Entonces, esto es aproximadamente todo el código que necesitas, porque necesitas iniciar sesión con StepZen, necesitas ejecutar StepZen Start, necesitas darle un esquema de GraphQL. Entonces tenemos este esquema con un tipo llamado país, tiene algunos campos, también tiene una relación con otro tipo llamado lenguaje, basado en una consulta que definimos en nuestro tipo más adelante. Y eso está todo conectado aquí. Entonces, si quieres crear una API de GraphQL, solo necesitas el lenguaje de diseño del esquema de GraphQL y nada más. Puedes ejecutarlo desde un proyecto de JavaScript, puedes ejecutarlo desde TypeScript, Python, realmente no importa, porque es independiente de la plataforma, no estás limitado a lenguajes de programación específicos. Lo único que necesitas usar es el lenguaje de diseño del esquema de GraphQL y nada más. Entonces, si construyes tus backends en Python, puedes conectar sus puntos finales, sus puntos finales REST o los puntos finales TypeScript, realmente no importa, porque no está limitado a ningún lenguaje de programación específico, solo el lenguaje de diseño del esquema de GraphQL. Y, por supuesto, también puedes fusionar APIs de terceros o SaaS en esta herramienta. Entonces, si de GraphQL con StepZen. Si creaste tus backends en Go, en JavaScript, en estás utilizando Google Cloud o la autenticación de Google para algo, si estás utilizando APIs de SaaS, tal vez como un CMS, como CMS sin cabeza, puedes fusionarlas todas juntas, directamente en StepZen. No estás limitado a tus propias APIs o bases de datos. Si tienes conexión con cualquier otra database, tal vez de un socio, tal vez de un tercero o tal vez de una empresa de SaaS, puedes conectarlas todas juntas en StepZen. Y para darte una idea de cómo funciona esto, recientemente lanzamos una nueva herramienta, que no discutiremos hoy. O tal vez podamos hacerlo más adelante si tenemos tiempo, porque hoy nos enfocaremos principalmente en cómo construir el servidor utilizando el lenguaje de diseño del esquema de GraphQL. Pero si te parece interesante, puedes ir a graphql.stepzen.com. Y aquí creamos GraphQL Studio, que es una forma bastante fácil de encontrar combinaciones de APIs que hemos seleccionado. Estas son de terceros o proveedores de SaaS. Y luego, directamente desde tu navegador, puedes ejecutarlas allí y puedes crear un servidor sobre eso. Entonces, en la esquina superior derecha, ya puedes ver que tan pronto como comiences a jugar aquí, ya crea un punto de GraphQL para ti, que luego puedes usar para comenzar a construir cosas sobre él. Entonces, no necesitas crear una cuenta si quieres usar el estudio. Pero, por supuesto, si quieres comenzar a construir APIs sobre tus propias fuentes de datos, es mejor crear una cuenta, porque entonces puedes modificar realmente estas cosas por tu cuenta también. El estudio de Stepsin es una excelente manera de explorar lo que Stepsin puede hacer por ti. Y luego, en este taller, profundizaremos un poco más. Y realmente comenzaremos a ver cómo construir el servidor tú mismo. Por lo tanto, la información para hoy se puede encontrar en nuestra documentación. stepsin.com/docs, y luego ve a inicio rápido. Y allí puedes encontrar las formas más sencillas de comenzar, pero te guiaré a través de ello. También tenemos nuestro propio Discord. Entonces, para el taller de hoy, probablemente sea más fácil si usamos el Discord de la conferencia. Si no estás allí, creo que el enlace está en el chat. Intentaré compartirlo nuevamente. Entonces, este es el Discord de hoy en el para este taller, lo usaremos hoy. También puedes usar el comunicador con otras personas en este Zoom tan pronto como comencemos a ir a las salas de grupos. Y en esta diapositiva, puedes ver tu propio canal de Discord, que compartiré más adelante hoy. Entonces, si comienzas a convertirte en un usuario de Stepsin, comienzas a construir tu API, este Discord es realmente conveniente para hacer preguntas a nuestro equipo, a los ingenieros allí y las personas son realmente, realmente serviciales y realmente quieren que comiences a usar esta herramienta y respondan tus

6. Introducción al taller y repositorio de GitHub

Short description:

El taller de hoy incluye un repositorio de GitHub con código y tareas. Puedes encontrar el repositorio en GitHub.com/steps y samples. El taller se centra en la construcción de una API de GraphQL utilizando StepZen. Se proporcionarán enlaces en el chat y en Discord como referencia.

preguntas. Así que para hoy, dejemos la presentación hasta aquí. Para hoy, he creado un repositorio de GitHub para ti, en el que encontrarás el código para hoy. Colócalo aquí. Así que si vas a GitHub.com/steps y samples, puedes encontrarlo aquí. Este es el repositorio para hoy. Permíteme ponerlo en el chat. Las tareas se pueden encontrar en este enlace. Cierra eso también, así como las notificaciones. Este es el taller que creé para hoy, puedes encontrarlo en GitHub.com, luego steps y API workshop. Pondré un enlace en el chat. Así que por favor, ten un enlace allí. Lo pondré en Discord por ahora. Ejemplos para

7. Configuración de las fuentes de datos y conexión de StepZen

Short description:

En este taller, crearás una API basada en GraphQL en fuentes de datos populares como REST, MySQL, PostgreSQL y StepZen. Comienza instalando StepZen CLI y creando una cuenta de StepZen. Elige entre MySQL, PostgreSQL o la API REST. Si no tienes Docker, utiliza la API REST. Sigue el archivo README para configurar MySQL utilizando Docker y ng-rock para conexiones remotas. Clona el repositorio y ábrelo en tu editor preferido. Inicia la base de datos MySQL y utiliza ng-rock para exponerla. Finalmente, verifica si hay alguna pregunta.

hoy, ejemplos y tareas. Así que aquí puedes encontrar varias cosas. Te aconsejaría que comiences leyendo el archivo README. Así que bienvenidos todos a este masterclass. Comenzarás creando una API basada en GraphQL, sobre fuentes de datos populares como REST, MySQL, PostgreSQL y GraphQL con StepZen. Para comenzar, necesitas tener instalado StepZen CLI. Y luego una cuenta gratuita de StepZen. Así que por favor, utiliza este tiempo para crear estas cosas e instalar StepZen CLI. Y luego crea la cuenta que necesitas para ejecutar el CLI. Y luego tenemos tres tipos de data que puedes utilizar. Tenemos una base de datos MySQL, una base de datos PostgreSQL y una API REST. Y puedes utilizar todas estas cosas para crear el código de hoy. Así que puedes elegir cualquiera de las tres fuentes de datos populares. Así que al principio, solo elige una, ya sea MySQL o PostgreSQL, si tienes Docker instalado. Si no tienes Docker instalado, o tal vez tienes miedo de usar Docker, puedes utilizar la API REST en su lugar. No necesitas ningún conocimiento previo para usar Docker en este ejemplo. Por ejemplo, si eliges MySQL, puedes encontrar varias cosas aquí. Puedes encontrar nuestros datos predefinidos, por lo que creará algunos datos iniciales para hoy. Aquí también puedes encontrar un archivo Docker Compose, y aquí puedes ver que configuramos un usuario para ti, un demo, una contraseña de demo. También insertamos los datos para la cosa inicial. Y el archivo README aquí es bastante completo. Así que si quieres comenzar a configurar MySQL para la tarea de hoy, necesitas crear una base de datos local utilizando Docker. También necesitas ng-rock y ng-rock en tu dispositivo con una cuenta. Porque expliqué esto al comienzo del taller, pero lo explicaré nuevamente para las personas que se unieron más tarde. StepZen utiliza conexiones remotas para crear una API de GraphQL para ti. Así que si estás en este Docker, creará una base de datos local, pero para exponer esta base de datos local a Internet, necesitarás ng-rock. Así que echa un vistazo al archivo README, todo está explicado allí. Así que instalamos Docker. Necesitas configurar tu token de autenticación de ng-rock y luego puedes ejecutar un comando de docker-compose para iniciar tu base de datos MySQL o Postgres. Para Postgres es lo mismo. Editará la base de datos de Postgres, aprenderás a usar ng-rock, excepto que utilizarás un puerto diferente porque Postgres generalmente se ejecuta en un puerto diferente y luego puedes comenzar a construir esta API de GraphQL sobre ella. Permíteme mostrarte cómo se vería esto. Así que tengo Docker instalado en mi dispositivo. Así que si quieres comenzar a construir esto, ve aquí a code, copia esto, ve a tu terminal, ejecuta git clone y luego esta URL clonará el repositorio en tu dispositivo y luego desde allí puedes abrir tu código en cualquier editor que uses, probablemente la gente esté usando diferentes editores, así que está bien. Y aquí, permíteme verificar si estoy en la rama principal, estoy en la rama principal perfecto. Puedo encontrar el archivo Docker Compose y un ejemplo allí, así que iría a CD, mi SQL y Docker Compose up, y luego dará un error. ¿Qué hice? Probablemente aún no tengo Docker iniciado, así que déjame iniciar Docker primero. Docker Docker, ¿estás iniciando? Sí, se está iniciando. Ahora que mi Docker ha iniciado, y luego Docker Compose up de nuevo. Conexión rechazada. Todavía no se ha iniciado. Ahora se ha iniciado y ahora debería estar en ejecución. Permíteme ver si tengo el comando correcto. Sí, ahora comenzará a crear mi base de datos MySQL. Y luego lo siguiente que debería hacer es usar ng-rock para crear un puerto TCP. Y con este puerto TCP... Necesito encontrar el puerto de MySQL. Se está ejecutando en el puerto 3306. 6, y luego comenzará mi túnel local, y esta URL es algo que puedo usar para conectar StepSnap. Y antes de pasar a crear las salas de trabajo, permíteme ver si tenemos alguna pregunta. Veo una pregunta de Benjamin.

8. Obteniendo datos de múltiples puntos finales

Short description:

Obtendremos datos de múltiples puntos finales en un solo resolvedor en las tareas. Si deseas comenzar a construir con MySQL, asegúrate de tener Docker y NgRock instalados. El proceso es el mismo para Postgres, pero con un puerto diferente. Copia la URL del túnel local y agrégala a tu archivo config.yml. Luego ejecuta los comandos de inicio de la sección para crear el servidor GraphQL.

Entonces, ¿cómo funcionaría si necesitas obtener data de múltiples puntos finales en un solo resolvedor? Sí, eso es algo que haremos en las tareas. Así que tu pregunta será respondida cuando comiences a hacer las tareas. Entonces, tal vez podamos usar el chat o levantar las manos si quieres comenzar a construir usando MySQL. Y si tienes Docker instalado, ¿alguien tiene problemas para ejecutar Docker? Si quieres comenzar a construir con MySQL. Entonces, sin manos, sin preguntas en el chat, eso es generalmente bueno. Así que les mostraré si quieren comenzar a usar MySQL, entonces sabrán cómo ejecutar Docker y tal vez incluso lo hayan intentado antes. Para Postgres, funciona de la misma manera. Solo tienes que ir al archivo readme allí. Es lo mismo. Necesitas tener Docker, necesitas tener NgRock. Ejecutas docker-compose up dentro del directorio de Postgres, por supuesto, y luego en lugar del puerto 3306, tendrías que usar el puerto 5432. Pero todo está explicado en el readme. Creo que ahora tendría sentido mostrarte cómo funciona esto. Entonces, tenemos nuestro puerto en ejecución, luego nuestro archivo de índice. Podemos decirle al servidor que estamos usando MySQL en el ejemplo. Lo guardamos y luego tenemos un archivo GraphQL definido aquí, y tenemos nuestra configuración aquí. Entonces, cada vez que inicias el túnel local, asegúrate de copiar esta URL y ponerla en tu archivo config.yml porque ahí es donde se coloca la configuración, esta configuración para MySQL. Y luego deberías poder ejecutar los comandos de inicio de la sección después de haber iniciado sesión. Y luego comenzará a crear el servidor GraphQL para ti basado en todo lo que está ahí.

9. Actualizando CLI y ejecutando el repositorio

Short description:

Para empezar, asegúrate de tener el CLI instalado y el repositorio clonado. Actualiza el CLI y ejecuta el archivo de índice con la configuración de la base de datos MySQL. El CLI creará un proxy local para tu API de GraphQL y un playground de GraphQL basado en el código especificado. Puedes consultar los libros de la base de datos MySQL utilizando el esquema proporcionado. Si tienes alguna pregunta, no dudes en preguntar. El código para la masterclass de hoy se encuentra en GitHub en la organización steps and samples, bajo el repositorio steps and API workshop. Puedes utilizar MySQL, Postgres o REST como fuente de datos. REST no requiere Docker, pero MySQL y Postgres sí. Si prefieres REST, el servidor My.JSON proporciona APIs basadas en REST de forma gratuita con puntos finales para obtener libros y más. Veamos cómo se ve con REST.

Entonces, veo que necesito actualizar mi CLI. De todos modos, es un buen momento para hacerlo. Así que eso es una de las dos cosas que necesitas. Necesitas tener el CLI instalado, y luego, por supuesto, este repositorio.

Entonces, ¿alguien tiene problemas para ejecutar el repositorio en su dispositivo? Ok, eso es bueno. Permíteme actualizar el CLI, y puedo darte un ejemplo de cómo empezar con esto. Mientras esperamos a que esto se inicie, esperamos a que mi CLI se actualice. Oh, simplemente actualízalo. Sí, ahora debería poder, así que tengo mi archivo de índice. He definido que voy a usar una base de datos MySQL. He hecho la configuración. He agregado los detalles de conexión para una base de datos MySQL. Y luego debería poder ejecutar el CLI. Puede que necesite iniciar sesión de nuevo. Vamos a comprobarlo. No, ya está desplegado. Y luego creará dos cosas. Creará un proxy local para tu API de GraphQL. Cópialo, pégalo aquí, déjame encontrar mi navegador. Está aquí. Así que creará este playground de GraphQL para ti basado en las cosas que hemos especificado en nuestro código. Así que hemos configurado nuestra base de datos MySQL. Nos hemos dicho que el esquema inicial viene de aquí y luego tenemos un esquema inicial aquí. Así que todos estos tipos deberían estar presentes en mi base de datos. Así que podría empezar a comprobar aquí. Tengo una consulta. Tengo una consulta para obtener libros y obtener algunos libros. Oh, entre corchetes, libros, dame una lista de libros. Algunos nombres. Sí, esta lista de libros, ¿de dónde viene? Así que tengo mi archivo de índice, puedo ver que viene de MySQL. Y aquí puedes encontrar un archivo gráfico que muestra que los libros vienen de una base de datos, MySQL, libros y la tabla libros. Así que básicamente hace un select all utilizando los campos que solicitamos. Así que si solicitamos un nombre, hará un select name from books. Hacemos cosas diferentes aquí. Si tal vez agregamos, ¿tenemos ID de autor? Seleccionará nombre e ID de autor de books. Ya sabes cómo va. Eso es básicamente todo en términos de lo que quería explicarte. Creo que ahora sería un buen momento para interrumpirme con preguntas. Y si no, comenzaré a crear las salas de trabajo. Así que espero que todos encuentren el código para hoy. Está en GitHub, en la organización steps and samples y luego en steps and API workshop. Y como dije, puedes usar MySQL, Postgres o REST. Para MySQL y Postgres, necesitas Docker. Para la API REST no necesitas, porque si vas al Readme aquí, puedes ver que utiliza el servidor My.JSON para crear una API basada en REST gratuita. Y tenemos algunos puntos finales para obtener libros. Son puntos finales REST. Obtendremos algunos libros para nosotros, puntos finales REST para obtener un libro específico y para obtener todos los libros de nuevo. Así que eso es básicamente todo. Si quieres usar REST, si quieres usar MySQL o Postgres, es un poco más complejo porque necesitas Docker. Así que veamos cómo se ve con REST.

10. Configuración de fuentes de datos y uso de Materializer

Short description:

Asegúrate de tener Steps y CLI instalados y crea una cuenta gratuita. Elige una de las tres fuentes de datos predefinidas y añádela al archivo de configuración. Verifica la conexión de la fuente de datos ejecutando una consulta para obtener una lista de libros y sus nombres. Si tienes algún problema, envía un mensaje o utiliza el chat para obtener ayuda. Aprende cómo utilizar una directiva personalizada como Materializer para enlazar varios tipos de GraphQL.

Primero, asegúrate de tener Steps y el CLI instalados y crea una cuenta gratuita porque necesitas ambos para ejecutar este proyecto. Luego elige una de las tres fuentes de datos predefinidas y añade la fuente de datos seleccionada al archivo de configuración.

Así que la solución también estaba aquí. Puedes ver cómo configurar las cosas de esta manera. Tendrías un esquema definido. Entonces, cada uno de estos repositorios, vas al código, cada uno de ellos tendrá un Readme que explica cómo configurarlos y cada uno de ellos tendrá un esquema inicial. Así que el esquema utiliza la configuración básica para que puedas empezar rápidamente.

Entonces, si vamos a la configuración, no, la configuración, si vamos al índice y decimos que queremos usar una API REST, puedes hacerlo así. Ahora tomará nuestra API REST. Desplegará esto. Y luego, si vamos aquí, antes los data venían de MySQL database y ahora vienen de Books, Next, tomará este nombre, ejecutará esto, obtendrá estos data de la API REST que hemos definido aquí. Aquí está la API REST definida para obtener libros. Y luego esta es la API REST. Así que cada vez que ejecutes esta consulta, obtendrá estos data de la API REST. Y si estás utilizando MySQL, si estás utilizando Postgres, hará lo mismo, pero en lugar de la API REST, tomará los data de otro lugar. Pero eso fue principalmente todo para la primera pregunta. También puedes encontrar las soluciones aquí.

Para la segunda pregunta, verifica la conexión de la fuente de datos ejecutando la consulta para obtener una lista de libros y sus nombres. Deberías poder hacer esta consulta si tienes MySQL, Postgres o REST definidos. Hay algunos tips en caso de que te atasques, esperemos que estos tips te ayuden. Y si te atascas, por favor envíame un mensaje o utiliza el chat para hacer esta pregunta si te quedas atascado en algún lugar. Y para la tercera pregunta, se mostró cómo puedes utilizar una directiva personalizada como Materializer. StepZen tiene varias directivas personalizadas. Si vamos a la documentación, acercémonos un poco, tenemos la directiva personalizada, esquema de diseñador, interfaces firmadas, contenido, no, no esto. Deberías buscarlo. Sí, está en la parte de enlaces de APIs. Algo está aquí, materializer, enlazando varios, ah, aquí está. Así que enlazando varios tipos de GraphQL. También lo pondré en los chats que tenemos en Discord. Encuéntralo donde está, está aquí. Materializer, directiva. Con Materializer puedes enlazar cosas juntas. Así que puedes ver aquí. Si tienes un tipo llamado ubicación y quieres tener algo más, AppMaterializer está ahí. Así que en el código también tenemos esto. Así que tenemos, si vamos a una rama diferente. Todas las soluciones están en una rama diferente. Veamos qué rama tenemos, obtener rama. Cambiar a la rama ejercicio tres. Ahora estamos en una rama diferente. Y aquí puedes ver que hemos añadido el campo autor en libro. Así que los data de libro venían de cualquiera de nuestras fuentes de datos. Los data de autor también vienen de nuestras fuentes de datos. Así que tenemos la API REST para obtener información del autor. Podemos ver que tenemos tres y todos tienen un ID. Y luego para los libros, puedes ver que todos tienen un ID de autor enlazado. Así que queremos enlazar la API REST para obtener todos los autores junto con la API REST para obtener todos los libros. Y luego queremos utilizar el ID de autor como una relación. Así que en el código puedes ver que tenemos la consulta materializer autor. Así que tenemos una consulta aquí para obtener un autor.

11. Conexión entre Libros y Autores

Short description:

Esta sección explica cómo establecer una conexión entre libros y autores utilizando sus respectivos IDs. Se muestra cómo se establece la conexión y las consultas que se utilizan. La sección también introduce la siguiente pregunta en la masterclass, que implica conectar otra fuente de datos, como la API de Google Books, para enriquecer los datos. Al conectar múltiples fuentes de datos, se vuelve más fácil recuperar y gestionar los datos en un solo lugar.

Toma un ID. Utiliza el ID para añadirlo a la URL. Y luego decimos, nombre ID. Así que este viene del campo ID del autor que tenemos aquí. Así que puedes ver que tiene la relación y aquí es donde se enlazan. Así que cada vez que uses la consulta libro, también usarás autor. Hará la relación utilizando esta consulta de conexión.

Vamos aquí. Puedes ver que tenemos libros, tenemos nombre, y luego queremos tener autor. No se completa automáticamente todavía. Así que vamos a refrescar. Tenemos este. Y luego queremos usar autor. Podemos usar el ID del autor como ejemplo, pero queremos tener el autor real. Como lo usamos para materializarlo y conectarlo. Y luego vamos a decir nombre así. Así que ahora conecta el autor. Podemos ver que Kirstie escribió los dos primeros libros y utiliza la conexión de esto. Así que tenemos un ID de autor aquí. Y por supuesto, este también tiene un ID. Y puedes ver que se enlazan juntos. Uno y uno, uno y dos, dos y dos. Así es como se hace la conexión. Así que enlaza el ID del autor con el autor basado en esta consulta. Básicamente, lo que hace es enviar la consulta para obtener libros utilizando el ID del autor. Y al mismo tiempo, también utilizará esta consulta para obtener un autor con un ID. Así que tal vez uno, y luego obtener el nombre. Básicamente, esto es lo que sucede.

Así que tomará, como ejemplo, queremos tomar el ID del libro uno. Al final, tomará dos consultas. Obtendrá la consulta para obtener todos los libros y luego obtendrá la consulta para obtener el autor para cualquiera de estas relaciones. Y ahora hemos enlazado las API REST juntas lo que significa que puede que no sea tan eficiente como se desea porque aún necesita enviar todas las solicitudes de API REST, pero como usuario final, como consumidor de la API, tienes todo en un solo lugar, lo cual es realmente una forma muy agradable de tener las cosas porque de esta manera es mucho más claro de dónde proviene todo y cómo obtendrías los data y cómo se conectan las cosas.

Así que básicamente son los primeros tres ejercicios. Si vas a GitHub, puedes ver que hay varias preguntas. Hasta ahora, hemos visto la pregunta tres. Por supuesto, aquí está la pregunta uno, configuramos una fuente de datos, luego verificamos la conexión a tu fuente de datos. Y luego, para la pregunta tres, lo que estamos haciendo aquí es establecer la relación entre libros y autor, que acabamos de hacer. Ahora lo que queremos hacer es, la pregunta cuatro, así que hicimos esta conexión, pudimos obtener un libro con un nombre y un autor y un ID. La solución también está aquí, si quieres verla más tarde. Verás, tenemos un tipo llamado libro, añadir materializer para hacer la conexión. Y para el tipo cuatro, vamos a decir, vamos a conectar otra fuente de datos a los datos que has explorado en las primeras preguntas. Así que no solo puedes enriquecer los datos utilizando MySQL y REST juntos, también puedes añadir una API de terceros como Google Books. Google Books tiene una API, que es relevante para esta discusión, porque tenemos una base de datos o una API REST con información de libros sobre autores y el libro en sí. Y luego podemos conectar la API de Google Books juntas. Así que Google tiene una API pública que puedes abrir así. Así que es una API REST. Aquí puedes ver que para el ISBN, este, lo haré más explícito. Así que para el ISBN 978, etc., encuentra el libro The Murders in Ruhmorg, que también está en nuestra base de datos, creo. Así que vamos a volver y simplemente añadir libros aquí con un nombre. Así puedes ver que todos los libros están aquí.

12. Fusionando Datos de Múltiples Fuentes

Short description:

Podemos fusionar información de múltiples fuentes utilizando StepZen, incluyendo nuestra API REST proporcionada, la API de Postgres, la base de datos MySQL y la API de Google Books. Al fusionar estas fuentes, podemos ampliar la información de nuestra base de datos con detalles adicionales como descripciones e imágenes en miniatura. Para lograr esto, podemos utilizar StepZen para agregar una solicitud a la API de Google Books y crear una nueva operación en nuestro esquema de GraphQL. También podemos utilizar la herramienta en línea JSON 2 SDL para generar automáticamente un esquema de GraphQL basado en el JSON de la API de Google Books. En el ejercicio número cuatro, dedicaremos 15 minutos a trabajar juntos en esta tarea antes de reunirnos nuevamente.

Y también este libro está aquí. Y, por supuesto, también tenemos un ISBN en nuestra base de datos, que es un identificador para un libro. Así que cada libro que se vende, que se publica, tiene su propio ISBN, que es un identificador global. Y para esto, podemos decir que este identificador global, también podemos encontrar información en la API de Google Books. Siguiendo así.

Así que sí, toda esta información. Tiene un enlace a sí mismo en la API. Tiene información de volumen, como un título, que ya tenemos. Tiene información del autor, que ya tenemos en nuestra base de datos. Pero tiene información adicional, como un editor, fecha de publicación, una descripción, así que nuestra base de datos no tiene ninguna descripción del libro. Así que es realmente bueno que podamos usar esta información de la API de Google Books. Hay cosas como el número de páginas, tipo de impresión, calificación. No estoy seguro de dónde vienen estas calificaciones, probablemente solo de Google. Y también tiene enlaces de imágenes, como una miniatura. Así que en base a esto, también podemos, podemos ampliar su información con tal vez una descripción y una miniatura, porque esta información no la tenemos en la base de datos todavía. Así que queremos fusionar estas cosas juntas. Y para esto, puedes usar StepZen, por supuesto, porque lo que StepZen hace es hacer posible que puedas fusionar información proveniente de múltiples fuentes. Así que podrías, por ejemplo, usar la API REST que proporcionamos, también puedes usar la API de Postgres base de datos que proporcionamos, o la base de datos MySQL que se proporcionó, y luego fusionarlas. Y luego, para la pregunta número cuatro, la idea es también fusionar esta API de Google Books allí. Así que también puedes fusionar cualquier API de terceros que puede ser Google Books, puede ser básicamente cualquier cosa, y luego agregarlas como un recurso. Así que puedes agregar esta solicitud a esta API de Google Books, que tengo aquí, también como una consulta. Así que puedes agregar otra operación. Así que tenemos una operación para obtener libros, para obtener un libro específico, para obtener un autor, para obtener un autor específico. También puedes agregar una operación para obtener un ISBN de Google Books. Y luego deberías poder usar una consulta como esta. Y lo que es bastante genial es que hay esta herramienta en línea llamada JSON 2 SDL, que abriremos aquí. Y lo que hace por ti, cambia SDL en algo que puedes usar en un esquema de GraphQL. Así que un ejemplo, si miras aquí, puedes pegar todo este JSON de la API de Google Books, y luego automáticamente creará un esquema de GraphQL para nosotros, basado en esto. Así que tiene nuestras consultas. Esa es la información sobre el volumen, la descripción, los enlaces a las imágenes. Todas estas cosas las podemos usar para este ejercicio. Así que para el ejercicio número cuatro, dediquemos unos 15 minutos a ello. Así que a las cinco, lo haremos todos juntos en esta sala. Así que tómate tu tiempo para intentarlo tú mismo, y avísame si tienes alguna pregunta en el ínterin. Y luego volveremos a las cinco, hora de Europa Central. No estoy seguro de qué hora es en tu zona, pero en 15 minutos. Así que avísame si tienes alguna pregunta, y luego te tomaré 15 minutos para trabajar en este ejercicio. Así que comencemos la grabación para las personas que se fueron temprano.

13. Conectando la API de Google Books al Esquema de GraphQL

Short description:

Para conectar la API de Google Books a nuestro esquema de GraphQL, podemos utilizar el ISBN para hacer la conexión. Al agregar la descripción y la miniatura de la API de Google Books, podemos enriquecer nuestra API existente, que actualmente solo incluye nombres de libros y autores. Para convertir el JSON de la API de Google Books en un tipo de GraphQL, podemos utilizar la herramienta json2sdl.com. Esta herramienta convierte automáticamente el JSON en un tipo de GraphQL, lo que nos permite integrarlo fácilmente en nuestro esquema. Una vez implementado en StepZen, podemos utilizar la consulta de Google Books con el ISBN para obtener la información deseada.

Sí, así que para la pregunta número cuatro, lo que queremos hacer, queremos conectar otra data fuente que exploraste en las primeras preguntas. Encontramos la API de Google Books, ¿verdad? Así que esta es una buena manera de agregar información adicional a nuestro esquema. Lo que queremos conectar es básicamente esta API de Google Books, podemos utilizar el ISBN para hacer la conexión, porque cada libro tiene un ISBN asociado. Y podemos completarlo en una API de Google Books, y luego podemos utilizar esta información para configurar todo aquí.

Lo que queremos utilizar es una descripción, y también queremos utilizar la miniatura. Porque si miramos nuestra API actual, solo tenemos el nombre del libro y el autor en diferentes tablas de database, o en diferentes APIs REST. Así que también queremos conectar información adicional. La API de Google Books, también podemos conectarla a nuestra API de GraphQL. Así que lo que podemos hacer es tomar todo el JSON de aquí, y simplemente ponerlo aquí. Así que esta es una buena herramienta. Se llama json2sdl.com. Algo que usamos en Steps and Build. Y con esto, puedes convertir tu JSON existente en algo que puedas usar en GraphQL. Y aquí, simplemente podemos... Así que lo que sucede es que todo se convierte en un tipo de GraphQL. Vale.

¿Cómo se ve esto? Así que si vamos a nuestros ejemplos, vamos al ejercicio cuatro. Así que si edito un nuevo tipo de esquema, se llama googlebooks.graphql. Agrega una consulta llamada Google Books y devuelve los resultados de Google Book. Y básicamente solo llama a esta API e inserta el ISBN y luego devuelve la información que encontramos en la API. ¿Cómo obtienes los tipos? Por ejemplo, si miramos aquí, podemos ver que tenemos el tipo Google Book results, este campo items porque vamos a nuestra API. También puedes ver que tiene campos items. Así que JSON2SQL realmente nos ayudó a crear este tipo. Así que aquí podemos ver que tenemos el tipo item. Solo copia y pégalo y agrégalo aquí. De hecho, lo he renombrado a algo más legible, por supuesto, también puedes usar esto, deshacerte de este. Y luego el tipo que usaremos es básicamente solo volume info porque lo que queremos tener es la descripción y el enlace de la imagen, que están ahí. Así que lo que hacemos aquí es básicamente eliminar todo. Y tenemos el tipo item, que es el tipo volume info. Solo he creado tipos, los creé yo mismo, vamos a deshacernos de ellos. Vuelve a JSON to SDL, puedes ver que tenemos volume info, que se ve así, también convertido automáticamente para nosotros. Copiémoslo y peguémoslo también aquí. Y también podemos ver muchos campos que podemos usar, pero todo lo que queremos es la descripción y los enlaces de imagen, ¿verdad? Así que podemos eliminar todos los demás que no vamos a usar. Y luego el último que necesitamos encontrar es image links, que probablemente también está definido aquí. Así que aquí está bastante bien. Si me siento aquí y veo, solo usaremos la miniatura. Así que ahora es importante porque todas las cosas que tenemos aquí, todas son tipos de GraphQL o su relación con un tipo que está definido aquí porque de lo contrario las cosas se romperán. Si guardo esto, comenzará a implementarse nuevamente en Stepzen. Y el contenido en conflicto ha cambiado. Así que veamos qué sucede aquí. Ah, necesitamos insertarlo aquí, Google Books. Eso está todo correcto. Y luego se está implementando. Así que ahora está implementado en Stepzen. Así que si vamos aquí. Solo actualízalo por si acaso. Ahora hemos agregado la API de Google Books aquí también como una consulta. Puedes encontrarlo aquí, Google Books, y solo necesitamos el ISBN para obtener resultados de Google Books. Así que podemos escribir Google Books, ISBN.

14. Refactorización de datos anidados con StepZen

Short description:

Encontremos un libro con ID uno en nuestra base de datos o API REST, toma el ISBN y el nombre. Crea una consulta de Google Books utilizando el ISBN de Asesinato en el Expreso de Oriente. Recupera la descripción y la miniatura de la API de Google Books. Refactoriza los datos profundamente anidados utilizando el resultado raíz de StepZen y aplana la estructura. Utiliza setters para aplanar aún más los enlaces de imagen y la miniatura. Reinicia el Explorador para ver los cambios. El ejercicio número cinco proporciona un ejemplo útil.

Quizás usemos, no sé, hagamos algo diferente. Intentemos obtener nuestros ISBN. Encontremos un libro con ID uno en nuestra database o en nuestra API REST existente, toma el ISBN y toma el nombre. Bien, ahora lo tenemos, el ISBN. Luego crea una consulta de Google Books que creamos a continuación. Vamos a tomar este bonito ISBN de Asesinato en el Expreso de Oriente. Luego vamos a obtener nuestros elementos de descripción porque está profundamente en data. Necesitamos ir a volume info y luego podemos obtener la descripción. Genial. Esta información proviene de nuestra API REST y esta información proviene de la API de Google Books, que es esta aquí. La descripción es lo que se encuentra aquí, es como una breve descripción. Y lo que también puedes hacer es obtener la imagen aquí. Así que image links, y luego obtener nuestra miniatura. Y luego puedes ver, podemos obtener esta bonita miniatura aquí. Pégala. Esto se parece a, así que esta será la portada del libro que estamos utilizando. Y luego en un frontend, puedes consultar fácilmente esta cosa y comenzar bastante fácilmente. Pero tengo un problema con esto, ¿verdad? Los data están profundamente anidados, ¿verdad? Tenemos Google Books, tenemos elementos, volumen, descripción, image links, thumbnail, que están profundamente anidados, lo cual se debe a la API de Google Books. Entonces esto devuelve los data en un formato que realmente no nos gusta. Así que lo que podemos hacer es intentar refactorizar esto. Y con StepZen, hay algunas cosas incorporadas que facilitan hacerlo. Una cosa que podemos hacer es usar result root. Result root. Y aquí puedes definir la raíz de los data que vamos a utilizar. Así que solo obtenemos información de volume info a través de nuestros elementos. Entonces lo que puedes hacer aquí, puedes decir elementos, y elementos es un array, así que hazlo así, y luego volume info. Entonces le diremos que esta es nuestra raíz de resultados. ¿Dónde lo obtuvimos? Así que ahora. Y ahora debería estar aplanado. Estos resultados serán solo esto. Podríamos copiar esto aquí. Ahora deberíamos poder deshacernos de esto porque ya lo hemos aplanado un poco. Esta consulta, ¿dónde está? Está aquí. Ya no debería funcionar porque no podemos consultar el campo elementos. En su lugar, lo hemos aplanado. Volume info será la raíz. En lugar de elementos, necesitamos eliminar algunas cosas aquí también. Deberíamos poder hacer esto. Ahora ya lo hemos aplanado. Aún obtenemos el error porque necesitamos reiniciar el Explorador en realidad para que sea visible para todos. Y ahora lo único que necesitamos aplanar son image links y thumbnail, ¿verdad? Porque aún no se ve tan bien. Así que podemos usar setters para esto. Podemos hacer setters. Y luego podemos decir, ¿cómo hacemos esto exactamente? Decimos algo como nombre. No sé. Permíteme hacer brevemente el ejercicio número cinco, este, guárdalo en el almacén. Y luego no tengo que adivinarlo por ti. Así que git, saca el ejercicio número cinco, okay. Bien, podemos cerrar este y guardarlo, por favor.

15. Combinando la API de Google Books con una Fuente de Datos Existente

Short description:

En los ejercicios cuatro y cinco, aprendiste cómo configurar e implementar la API de Google Books y consultar directamente la miniatura. El ejercicio seis se centra en combinar la API de Google Books con tu fuente de datos existente utilizando la directiva de secuencia. Al crear una secuencia de consultas, puedes acumular y combinar los resultados de diferentes consultas en un bloque de información. Para lograr esto, crearás un nuevo archivo llamado colecciones y definirás una consulta para recopilar información y una operación con una secuencia. La secuencia llamará a la consulta obtener libros para recuperar todos los libros y luego utilizará el campo ISBN para llamar a la consulta obtener un solo libro de la API de Google Books. La consulta de recopilación combinará los resultados de ambas consultas utilizando un conector, y la salida será un array de resultados de libros.

Y luego podemos ver, también tenemos que configurar aquí. El setter dice que el campo miniatura en nuestro libro de Google es el que proviene de image links.thumbnail. Así que esta miniatura de resultados y esta, que proviene de la API de Google Books, porque las imágenes están definidas así y son JSON anidados. Puedes ver, usamos este setter y luego guardamos esto. Debería implementarse y luego esto ya no debería funcionar. En su lugar, puedes consultar directamente la miniatura aquí. Verifícalo y ejecútalo. Así es como se hacen los ejercicios cuatro y cinco.

Y luego, para el último ejercicio, número seis, la idea es combinar estas dos cosas juntas. Si vamos al ejercicio número seis. Ya hicimos esto. Ve a seis. Lo que quiero hacer aquí es crear una consulta que combine tanto los libros como los libros de Google. Hay varias formas de hacer esto. Puedes usar fácilmente la directiva App Materializer que ya viste, pero también puedes usar otra directiva llamada Add Sequence para hacer una secuencia de consultas. Así que puedes tener múltiples consultas que se siguen una tras otra y, en función de los resultados, se recopilarán y combinarán. Así que vamos a tomar, no sé, vamos a tomar los próximos 70 minutos para trabajar en esto. Si tienes alguna pregunta, por favor avísame, así que tomará 70 minutos y luego volvemos a trabajar en esto juntos y te mostraré la solución.

Así que para el ejercicio final, necesitabas combinar la nueva API de Google Books que insertamos en los ejercicios cuatro y cinco y combinarlos con tu fuente de datos existente. Puede ser la API REST que tenemos allí, pero también uno de los Dockers para MySQL o Postgres. Permíteme mostrar mi pantalla aquí. Y para hacerlo, necesitabas crear una secuencia de consultas. En el Paso 7, tenemos varias directivas personalizadas. Has utilizado las directivas personalizadas para conectar una fuente de datos como una consulta de base de datos o una API REST. Vimos la directiva materializer para combinar consultas dentro de un tipo y también tenemos la directiva de secuencia que te permite tomar una secuencia de consultas y luego acumular los resultados de todas estas consultas y recopilar la salida y devolver un bloque de información en lugar de diferentes consultas. ¿Cómo funciona esto? Llegamos a nuestro código. Vamos a la rama del ejercicio número seis. Así que el ejercicio número seis también, sí, unir estas cosas usando esa consulta de secuencia y luego deberías poder, permíteme obtener la vista previa en formato markdown. Sí, queremos tener una consulta para obtener información de los libros y luego queremos tener la información combinada de una API diferente. Antes teníamos esto, así que teníamos una consulta para obtener un libro o la consulta para obtener información de Google Books y probablemente esto ya no funcione, todavía funciona. Y ahora queremos combinarlos. Y para esto, creé un nuevo archivo llamado colecciones. Y aquí tengo dos cosas. Tengo una consulta para recopilar información y tengo una operación que tiene una secuencia. Entonces lo que hace, se llama obtener libros. Primero, llama a la consulta obtener libros. Así que primero llama a esta. Para obtener todos los libros. Y luego, a partir de los libros, tomará la palabra clave, detectará los campos ISBN. Así que este campo y la entrada del usuario para esta consulta porque la otra es de Google Books. Así que cada vez que llames a la consulta obtener libros, primero llamará a la consulta obtener todos los libros, luego llamará a la consulta para obtener un solo libro en función del ISBN que proviene de esta consulta. Y luego, una vez que regrese, tomará todos los campos y los recopilará de esta manera. Así que tenemos una consulta de recopilación que toma todo lo que se devuelve de la primera y la segunda consulta. Y luego los combina en uno usando un conector. Y luego el tipo de resultado será resultado de libro. Así que la consulta de recopilación se realizará para cada resultado. Cada resultado de los libros, cada resultado de Google Books, los unirá. Y luego la salida de todos los libros será un array de resultados de libros. Y el resultado del libro es la salida de solo un conector. Lo has definido aquí como una consulta, pero no llama a nada en el backend.

16. Combinando Datos con Secuencias de StepZen

Short description:

La secuencia en StepZen te permite combinar datos de múltiples consultas en un solo resultado. Puede ser utilizada para reunir datos de diferentes fuentes e incluso para fines de autenticación. La secuencia de operaciones garantiza que cada paso se ejecute en orden, lo que te permite recopilar y devolver la información deseada.

Lo único que hace es tomar los resultados de estas consultas, combinarlos y devolverte toda la información desde un solo punto. Esta es una forma conveniente de reunir tus datos. También podrías haber optado por utilizar el enfoque REST o podrías haber dicho algo como 'quiero alguna información meta'. No sé, tal vez sea información sobre libros. Y luego, aquí también podrías haber utilizado el materializador para conectar con Google Books. Esa podría haber sido una forma de resolverlo, pero en su lugar utilizamos la secuencia para tener una secuencia de operaciones y luego devolver una sola cosa. Además, otra ventaja es que también puedes utilizar una secuencia para realizar autenticación. Primero autenticas al usuario y una vez que esté autenticado, pasas al siguiente paso en la secuencia. Si no está autenticado, simplemente puedes detener la secuencia y recopilar información diferente. Esa es una forma de hacerlo.

17. Combinando MySQL, REST y la API de Google Books

Short description:

Podemos usar la API de MySQL en lugar de la API REST para obtener libros. Al conectar MySQL y REST, podemos combinar información de ambas fuentes. Además, también podemos integrar la API de Google Books para enriquecer nuestros datos. Para lograr esto, debemos realizar algunos cambios en los archivos de configuración y esquema. Siguiendo las instrucciones proporcionadas, podemos combinar con éxito MySQL, REST y la API de Google Books para crear un sistema multi-conectado.

Y luego también tuvimos algunas preguntas adicionales. No estoy seguro si tenemos tiempo para eso, pero en su lugar también puedo mostrarte cómo hacerlo. Hasta ahora hemos estado usando la API REST en su mayor parte, pero en su lugar también podríamos usar un ejemplo, la API de MySQL. Así que vamos a MySQL, luego necesitamos ejecutar los comandos para iniciar Docker. Esto iniciará un Docker, que ya está en ejecución. Y luego si vamos a la cosa que deberíamos ver, también deberíamos tener, lee esto aquí. Esto inicia un Docker local, pero lo que StepZen necesita es un contenedor remoto. Necesita poder conectarse de forma remota a este Docker o a esta database porque StepZen se ejecuta en la cloud. Así que no se ejecuta localmente. Si estás desarrollando cosas localmente, necesitas crear este túnel. Tan pronto como implementes tu database, estás bien porque una database implementada está disponible para redes externas. Así que vamos a iniciar este túnel externo. Nos da rutas TCP que podemos usar en nuestro config.djamal. Esto ejecutará nuestra cosa de MySQL. Y luego en nuestro archivo de índice, deberíamos decir, también tomamos la database de MySQL. Así. Y ahora probablemente obtengamos un error porque todas estas cosas ya están ahí. Ya tenemos cosas llamadas libro, nombres de autor. Entonces, ¿qué queremos hacer? Así que tenemos para MySQL database, tenemos libro aquí. Saquemos al autor de allí porque queremos obtener nuestro libro de MySQL. Saquemos al autor. Sí. Ahora todos los errores de autor han desaparecido porque vamos a obtener un libro de MySQL y luego vamos a la API REST y voy a decir que el libro no debería estar aquí porque los libros vienen de MySQL y sacamos todo lo relacionado con el libro de allí. Y solo guardamos. Esto se volverá a implementar. Y luego deberíamos poder tal vez no hacer esta consulta. Actualizar para empezar. Así que ahora, si hacemos una consulta para obtener libros, voy a obtener el nombre del libro, el ISBN del libro, vamos a obtener el autor y el nombre del autor. Ahora si ejecutamos esto, puedes ver que tenemos libros, tenemos nombre ISBN, que proviene de MySQL porque aquí dice que es una consulta de libros, está obteniendo una consulta de la base de datos, MySQL está obteniendo cosas de la tabla de libros, pero luego también dice que las cosas, la información del autor, proviene del materializador y una consulta de autor, y la consulta de autor está definida aquí en el esquema para la API REST. Así que puedes verlo aquí mismo. Esto combina MySQL y REST. Y luego, por supuesto, también tenemos la API de Google Books. Ella dijo aquí en nuestra colección. Así que con esto, podemos obtener nombre, descripción, ISBN, miniatura, y esto combina la API de Google Books con MySQL. En este caso, estábamos ejecutando esto en lugar de REST, podemos hacer un libro. Nombre, ISBN, y luego la miniatura que vimos antes, y esto también debería ejecutarse. Y ahora obtiene esta información de MySQL y esto de la API de Google Books. Y podrías ir aún más lejos y también agregar la API REST para obtener un campo de autor. Esto es algo que podrías hacer, ahora también necesitas hacer algunos cambios aquí. Entonces lo que podrías hacer es agregar autor, solo selecciona este allí. Y luego ponlo en nuestra colección. Pero luego no tenemos el ID del autor allí. Así que debes asegurarte de también recopilar esto. Probablemente sea un número entero o algo así. Así que también podrías conectarlo así y asegúrate también de recopilarlo. Para recopilar el ID del autor. Ya sabes cómo hacerlo. Básicamente, solo poniendo todas estas cosas aquí. Y luego también puedes conectar la API REST a esto.

QnA

Conclusion and Q&A

Short description:

En esta masterclass, aprendimos cómo usar StepZen y conectar diferentes fuentes de datos como MySQL, REST y la API de Google Books. Exploramos las complejidades involucradas y la importancia de comprender StepZen y GraphQL. Si tienes alguna pregunta sobre StepZen u otros aspectos de GraphQL, tenemos aproximadamente 50 minutos para discutir. Gracias por unirte a la masterclass y espero que la hayas disfrutado. No olvides crear una cuenta de StepZen y unirte a nuestro Discord para obtener más soporte. ¡Disfruta el resto de tu día!

Entonces tienes una conexión múltiple, y tenemos MySQL, REST y la API de Google Books. Y luego puedes hacer lo mismo con Postgres. No es tan complicado, pero parece menos trabajo del que realmente es. Por supuesto, también es importante comprender lo que StepZen está haciendo, lo que GraphQL está haciendo, y luego unir todas estas piezas y partes.

Entonces, eso es básicamente todo para esta masterclass. Y ahora me gustaría saber, ¿hay alguna pregunta de la audiencia? Ya hemos visto cómo usar StepZen, sabes cómo conectar diferentes fuentes de datos, pero tal vez las personas tengan preguntas sobre StepZen también, o tal vez sobre otras partes de GraphQL. Así que creo que tenemos aproximadamente 50 minutos para discutir estas cosas.

De acuerdo, allí vamos. Bueno, si no hay preguntas, entonces muchas gracias por unirte a esta masterclass. Espero que la hayas disfrutado y hayas aprendido algunos trucos nuevos. Asegúrate, si aún no lo has hecho, de crear una cuenta de StepZen para poder ejecutar esta masterclass. Permíteme compartir nuevamente el enlace contigo y también el enlace para el Discord de StepZen. Este será el lugar donde puedes hacer preguntas adicionales. Así que después de esta masterclass, si sientes que algunas cosas necesitan ser explicadas nuevamente o si algunas cosas te resultan interesantes, asegúrate de unirte a nuestro Discord y hacer tus preguntas allí porque este es el mejor lugar para hacer preguntas tan pronto como comiences a integrar StepZen en tu empresa. Así que gracias a todos. Espero que hayan disfrutado de la masterclass y tal vez nos veamos nuevamente en algún momento durante la conferencia. Así que gracias. Disfruten de su tarde si están en Europa y del resto de su día si están en otro lugar. Gracias.

Watch more workshops on topic

GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Build with SvelteKit and GraphQL
Top Content
Featured WorkshopFree
Have you ever thought about building something that doesn't require a lot of boilerplate with a tiny bundle size? In this workshop, Scott Spence will go from hello world to covering routing and using endpoints in SvelteKit. You'll set up a backend GraphQL API then use GraphQL queries with SvelteKit to display the GraphQL API data. You'll build a fast secure project that uses SvelteKit's features, then deploy it as a fully static site. This course is for the Svelte curious who haven't had extensive experience with SvelteKit and want a deeper understanding of how to use it in practical applications.

Table of contents:
- Kick-off and Svelte introduction
- Initialise frontend project
- Tour of the SvelteKit skeleton project
- Configure backend project
- Query Data with GraphQL
- Fetching data to the frontend with GraphQL
- Styling
- Svelte directives
- Routing in SvelteKit
- Endpoints in SvelteKit
- Deploying to Netlify
- Navigation
- Mutations in GraphCMS
- Sending GraphQL Mutations via SvelteKit
- Q&A
React Advanced Conference 2022React Advanced Conference 2022
95 min
End-To-End Type Safety with React, GraphQL & Prisma
Featured WorkshopFree
In this workshop, you will get a first-hand look at what end-to-end type safety is and why it is important. To accomplish this, you’ll be building a GraphQL API using modern, relevant tools which will be consumed by a React client.
Prerequisites: - Node.js installed on your machine (12.2.X / 14.X)- It is recommended (but not required) to use VS Code for the practical tasks- An IDE installed (VSCode recommended)- (Good to have)*A basic understanding of Node.js, React, and TypeScript
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL for React Developers
Featured Workshop
There are many advantages to using GraphQL as a datasource for frontend development, compared to REST APIs. We developers in example need to write a lot of imperative code to retrieve data to display in our applications and handle state. With GraphQL you cannot only decrease the amount of code needed around data fetching and state-management you'll also get increased flexibility, better performance and most of all an improved developer experience. In this workshop you'll learn how GraphQL can improve your work as a frontend developer and how to handle GraphQL in your frontend React application.
React Summit 2022React Summit 2022
173 min
Build a Headless WordPress App with Next.js and WPGraphQL
Top Content
WorkshopFree
In this workshop, you’ll learn how to build a Next.js app that uses Apollo Client to fetch data from a headless WordPress backend and use it to render the pages of your app. You’ll learn when you should consider a headless WordPress architecture, how to turn a WordPress backend into a GraphQL server, how to compose queries using the GraphiQL IDE, how to colocate GraphQL fragments with your components, and more.
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Relational Database Modeling for GraphQL
Top Content
WorkshopFree
In this workshop we'll dig deeper into data modeling. We'll start with a discussion about various database types and how they map to GraphQL. Once that groundwork is laid out, the focus will shift to specific types of databases and how to build data models that work best for GraphQL within various scenarios.
Table of contentsPart 1 - Hour 1      a. Relational Database Data Modeling      b. Comparing Relational and NoSQL Databases      c. GraphQL with the Database in mindPart 2 - Hour 2      a. Designing Relational Data Models      b. Relationship, Building MultijoinsTables      c. GraphQL & Relational Data Modeling Query Complexities
Prerequisites      a. Data modeling tool. The trainer will be using dbdiagram      b. Postgres, albeit no need to install this locally, as I'll be using a Postgres Dicker image, from Docker Hub for all examples      c. Hasura
GraphQL Galaxy 2021GraphQL Galaxy 2021
48 min
Building GraphQL APIs on top of Ethereum with The Graph
WorkshopFree
The Graph is an indexing protocol for querying networks like Ethereum, IPFS, and other blockchains. Anyone can build and publish open APIs, called subgraphs, making data easily accessible.

In this workshop you’ll learn how to build a subgraph that indexes NFT blockchain data from the Foundation smart contract. We’ll deploy the API, and learn how to perform queries to retrieve data using various types of data access patterns, implementing filters and sorting.

By the end of the workshop, you should understand how to build and deploy performant APIs to The Graph to index data from any smart contract deployed to Ethereum.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
From GraphQL Zero to GraphQL Hero with RedwoodJS
Top Content
We all love GraphQL, but it can be daunting to get a server up and running and keep your code organized, maintainable, and testable over the long term. No more! Come watch as I go from an empty directory to a fully fledged GraphQL API in minutes flat. Plus, see how easy it is to use and create directives to clean up your code even more. You're gonna love GraphQL even more once you make things Redwood Easy!
Vue.js London Live 2021Vue.js London Live 2021
24 min
Local State and Server Cache: Finding a Balance
Top Content
How many times did you implement the same flow in your application: check, if data is already fetched from the server, if yes - render the data, if not - fetch this data and then render it? I think I've done it more than ten times myself and I've seen the question about this flow more than fifty times. Unfortunately, our go-to state management library, Vuex, doesn't provide any solution for this.For GraphQL-based application, there was an alternative to use Apollo client that provided tools for working with the cache. But what if you use REST? Luckily, now we have a Vue alternative to a react-query library that provides a nice solution for working with server cache. In this talk, I will explain the distinction between local application state and local server cache and do some live coding to show how to work with the latter.
GraphQL Galaxy 2022GraphQL Galaxy 2022
16 min
Step aside resolvers: a new approach to GraphQL execution
Though GraphQL is declarative, resolvers operate field-by-field, layer-by-layer, often resulting in unnecessary work for your business logic even when using techniques such as DataLoader. In this talk, Benjie will introduce his vision for a new general-purpose GraphQL execution strategy whose holistic approach could lead to significant efficiency and scalability gains for all GraphQL APIs.