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

This workshop has been presented at GraphQL Galaxy 2021, check out the latest edition of this Tech Conference.

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 2021React Advanced 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 2021React Advanced 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 Kuznetsov
Mikhail Kuznetsov
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 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
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
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
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
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
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
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.