Crear una aplicación GraphQL con React

Rate this content
Bookmark

En este masterclass, construiremos una aplicación React desde cero utilizando una API GraphQL de Nhost.

Tabla de contenidos:
- Registrarse en Nhost y crear una aplicación Nhost
- Crear tabla de base de datos
- Configurar la aplicación React
- Instalar las dependencias de Nhost y GraphQL
- Mostrar datos en la aplicación React
- Permitir que los usuarios inicien sesión
- Agregar permisos de API GraphQL

FAQ

Para iniciar sesión usando GitHub, primero necesitas habilitar GitHub como método de inicio de sesión en la configuración de Nhost. Luego, en tu aplicación, puedes agregar un botón que al ser clickeado ejecute la función 'nhost.auth.signIn' con GitHub como parámetro. Esto abrirá una ventana de autenticación de GitHub que, una vez completada, te redirigirá de vuelta a tu aplicación ya autenticado.

Hasura es un motor GraphQL que se coloca sobre una base de datos Postgres para generar automáticamente una API de GraphQL. En el proyecto, Hasura se utiliza para manejar las operaciones de la base de datos y proporcionar una API de GraphQL accesible, que permite realizar consultas y mutaciones en tiempo real.

Puedes verificar si un usuario ha iniciado sesión utilizando el gancho 'useNhostAuth' proporcionado por Nhost. Este gancho te permite acceder al estado de autenticación del usuario y se actualizará automáticamente si el estado de autenticación cambia, permitiendo redirigir al usuario o cambiar la interfaz de usuario según sea necesario.

Para agregar un nuevo método de inicio de sesión en Nhost, como GitHub, debes ir a la configuración de tu proyecto en Nhost, habilitar GitHub como proveedor de autenticación y configurar las claves necesarias como el ID de cliente y el secreto de cliente que obtienes al registrar tu aplicación en GitHub. Luego, debes añadir la funcionalidad en tu aplicación para manejar el inicio de sesión con GitHub.

En Nhost, cuando un usuario se registra a través de un proveedor externo como GitHub, se asume que el correo electrónico ya ha sido verificado por ese proveedor. Por lo tanto, el campo 'email_verified' se establece automáticamente en 'true' en la base de datos de usuarios de Nhost.

Los datos se sincronizan en tiempo real utilizando suscripciones GraphQL a través de WebSockets. Esto permite que las actualizaciones en la base de datos se reflejen instantáneamente en la aplicación cliente sin necesidad de recargar o realizar nuevas consultas.

Para cerrar sesión de un usuario en una aplicación construida con Nhost, puedes utilizar el método 'signOut' del objeto 'auth' de Nhost. Esto eliminará la sesión del usuario y, dependiendo de cómo esté configurada tu aplicación, puede redirigir al usuario a la pantalla de inicio de sesión o cambiar la interfaz de usuario correspondientemente.

Johan Eliasson
Johan Eliasson
98 min
08 Dec, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

En este masterclass, los participantes aprendieron cómo construir una aplicación React con GraphQL y TypeScript utilizando NHost como backend sin servidor. Configuraron la aplicación, exploraron las características de NHost, crearon una base de datos Postgres con una API GraphQL, implementaron la autenticación y protegieron el panel de control. También se demostró la sincronización de datos en tiempo real y los participantes aprendieron cómo habilitar métodos de inicio de sesión de terceros. En general, el masterclass cubrió una variedad de temas y proporcionó una visión general completa de la construcción de una aplicación full-stack.

Available in English: Build a GraphQL App with React

1. Construyendo una aplicación de React con GraphQL y TypeScript

Short description:

Vamos a comenzar a construir una aplicación de React con GraphQL y TypeScript. Para seguir, ve a app.beta.io, crea una cuenta y elige Frankfurt, Alemania como ubicación. No se requieren detalles de tarjeta. Si tienes alguna pregunta o encuentras algún problema, por favor avísame.

Y vamos a comenzar a construir una aplicación de React con GraphQL y TypeScript. Entonces, en realidad lo que voy a pedir a todos los que ya se han unido, esta es mi idea aquí es hacer un masterclass y podrás seguirlo.

Y lo que te voy a pedir es que vayas a ver si puedo hacer que esto funcione. Podemos ir a beta. Voy a obtener la app.beta.io y crear una cuenta. La forma más fácil es simplemente iniciar sesión con GitHub si quieres seguirlo. Así que déjame hacer esto un poco más pequeño, y así puedes cerrar sesión e iniciar sesión con GitHub, y eso debería abrir esta vista y deberías tener un espacio de trabajo predeterminado creado para ti. Así que solo tienes que hacer clic en un espacio de trabajo y hacer clic en nueva aplicación o hacer clic en nueva aplicación aquí y crear una nueva aplicación, y tenemos un nivel gratuito, así que no necesitas ingresar ningún detalle de tarjeta ni nada. Así que si quieres seguir este masterclass, ve a app.beata.nls.io, crea una cuenta, se creará automáticamente un espacio de trabajo para ti, y puedes continuar y crear una nueva aplicación aquí. Puedes elegir una ubicación que esté cerca de ti, pero solo puedes elegir Frankfurt en Alemania por ahora. Es posible que agreguemos soporte multi-regional más adelante esta semana, así que vamos a agregar algunos centros de datos más, pero por ahora, la ilusión de elección, puedes elegir Frankfurt, Alemania. Así que solo voy a pedir a todos los que si tienes alguna pregunta... Porque no veo ningún comentario aquí. Así que si creaste una cuenta y tuviste éxito al hacerlo, simplemente haz un pulgar hacia arriba en el chat de Zoom. Así puedo ver algunos comentarios si está funcionando. Tal vez el equipo de infraestructura de NHOS esté sudando en este momento. No lo sé. ¿Cómo hago un pulgar hacia arriba? ¿Por qué no puedo hacerlo? Sí, tenemos el Discord

2. Seguir y Configurar

Short description:

Si solo quieres seguir y ver lo que hago, está bien. Pero si quieres seguir, configuración en progreso. Pulgar arriba. Tenemos uno. Un pulgar arriba. Eso es bueno. Así que si te acabas de unir, puedes ir a app.beta.nos.IO. Puedes ver que algunas personas ahora pueden crear cuentas y aplicaciones. Eso es perfecto. Así que todos los que acaban de dar un pulgar arriba, pudieron crear una cuenta aquí y una nueva aplicación. Ahora tienen su propia base de datos de Postgres. Ahora tienen una API de GraphQL, autenticación y almacenamiento listos. Voy a explicarte cómo puedes usar eso en solo un segundo. ¿Correcto, no estoy seguro de cómo lo hago?

en mi opinión. De acuerdo. No veo ningún pulgar arriba en el chat. ¿Significa eso que solo quieres seguir y ver lo que hago o tienes algún problema? Está bien. Si solo quieres seguir y ver lo que hago, está bien también. Pero si quieres seguir, configuración en progreso. Pulgar arriba. Tenemos uno. Un pulgar arriba. Eso es bueno.

Así que si te acabas de unir. Sí. Totalmente bien. Así que si te acabas de unir, puedes ir a app.beta.nos.IO. Voy a enviar el enlace en el chat de Zoom. Puedes ver que algunas personas ahora pueden crear cuentas y aplicaciones. Eso es perfecto. Así que todos los que acaban de dar un pulgar arriba, pudieron crear una cuenta aquí y una nueva aplicación. Ahora tienen su propia base de datos de Postgres. Ahora tienen una API de GraphQL y autenticación y almacenamiento listos. Voy a explicarte cómo puedes usar eso en solo un segundo. ¿Correcto, no estoy seguro de cómo lo hago? De acuerdo, vi algunos pulgares arriba, estamos listos para continuar. ¿Deberíamos estar listos para continuar? Entonces, lo que puedes hacer ahora es, veamos, tengo algunas notas.

QnA

Watch more workshops on topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Featured WorkshopFree
Scott Spence
Scott Spence
¿Alguna vez has pensado en construir algo que no requiera mucho código de plantilla con un tamaño de paquete pequeño? En esta masterclass, Scott Spence irá desde el hola mundo hasta cubrir el enrutamiento y el uso de endpoints en SvelteKit. Configurarás una API de GraphQL en el backend y luego usarás consultas de GraphQL con SvelteKit para mostrar los datos de la API de GraphQL. Construirás un proyecto rápido y seguro que utiliza las características de SvelteKit, y luego lo desplegarás como un sitio completamente estático. Este curso es para los curiosos de Svelte que no han tenido una experiencia extensa con SvelteKit y quieren una comprensión más profunda de cómo usarlo en aplicaciones prácticas.

Tabla de contenidos:
- Inicio e introducción a Svelte
- Inicializar el proyecto frontend
- Recorrido por el proyecto esqueleto de SvelteKit
- Configurar el proyecto backend
- Consultar datos con GraphQL
- Recuperación de datos en el frontend con GraphQL
- Estilización
- Directivas de Svelte
- Enrutamiento en SvelteKit
- Endpoints en SvelteKit
- Despliegue en Netlify
- Navegación
- Mutaciones en GraphCMS
- Envío de mutaciones GraphQL a través de SvelteKit
- Preguntas y respuestas
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.

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

No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Todos amamos GraphQL, pero puede ser desalentador poner en marcha un servidor y mantener tu código organizado, mantenible y testeable a largo plazo. ¡No más! Ven a ver cómo paso de un directorio vacío a una API GraphQL completamente desarrollada en cuestión de minutos. Además, verás lo fácil que es usar y crear directivas para limpiar aún más tu código. ¡Vas a amar aún más GraphQL una vez que hagas las cosas Redwood Easy!
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).
En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Vue.js London Live 2021Vue.js London Live 2021
24 min
Estado Local y Caché del Servidor: Encontrando un Equilibrio
Top Content
¿Cuántas veces has implementado el mismo flujo en tu aplicación: verificar si los datos ya se han obtenido del servidor, si es así - renderizar los datos, si no - obtener estos datos y luego renderizarlos? Creo que lo he hecho más de diez veces yo mismo y he visto la pregunta sobre este flujo más de cincuenta veces. Desafortunadamente, nuestra biblioteca de gestión de estado predeterminada, Vuex, no proporciona ninguna solución para esto.Para la aplicación basada en GraphQL, había una alternativa para usar el cliente Apollo que proporcionaba herramientas para trabajar con la caché. Pero, ¿qué pasa si usas REST? Afortunadamente, ahora tenemos una alternativa de Vue a una biblioteca de react-query que proporciona una buena solución para trabajar con la caché del servidor. En esta charla, explicaré la distinción entre el estado de la aplicación local y la caché del servidor local y haré algo de codificación en vivo para mostrar cómo trabajar con este último.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.