Construyendo una API GraphQL sin servidor en 7 minutos

Rate this content
Bookmark

Al comienzo de la pandemia de COVID-19, la Universidad Johns Hopkins trabajó en recopilar y refinar datos de múltiples fuentes y proporcionó al mundo un repositorio de Github y un montón de archivos CSV. ¿El problema? Es casi imposible construir algo a partir de datos en bruto como estos.

En esta sesión de codificación en vivo, Maxime Beunier, un defensor del desarrollador de MongoDB, te mostrará cómo construir una API GraphQL sin servidor basada en este conjunto de datos utilizando Python y la plataforma de datos de MongoDB. ¡Finalmente vamos a aprovechar el servidor sin servidor y el generoso nivel gratuito de MongoDB!

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

FAQ

Maxime Beunier es un defensor del desarrollador en MongoDB, con sede en París.

Maxime Beunier mostró cómo construir una API GraphQL sin servidor en menos de siete minutos.

Durante el inicio de la COVID, Maxime Beunier desarrolló una API REST, una API GraphQL y algunos gráficos usando MongoDB Atlas.

Importar directamente archivos CSV puede resultar en un esquema de datos terrible. Es mejor trabajar con datos estructurados adecuadamente, como fechas y datos geoespaciales.

Para autenticar a los usuarios en la API GraphQL, se puede usar la autenticación de usuario anónimo disponible en MongoDB Realm.

Maxime Beunier alojó su base de datos MongoDB en MongoDB Atlas, y la aplicación sin servidor fue desplegada en Irlanda.

Para ejecutar una consulta en la API GraphQL necesitas un token de autenticación, que se obtiene activando la autenticación de usuario anónimo y desplegando la aplicación.

La API GraphQL permite obtener datos de diferentes países, como casos confirmados diarios y las fechas correspondientes a esos datos.

Maxime Beugnet
Maxime Beugnet
8 min
10 Dec, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Maxime Beunier, un defensor del desarrollador en MongoDB, demuestra cómo construir una API GraphQL sin servidor utilizando MongoDB Atlas y Realm. Crea una nueva aplicación llamada Galaxy, la vincula al clúster de producción y la implementa en Irlanda. Luego muestra cómo autenticar usuarios y obtener un token para acceder a la API GraphQL. La demostración muestra la facilidad y velocidad de construir una API GraphQL sin servidor y proporciona todos los enlaces necesarios para una mayor exploración.

1. Building a Serverless GraphQL API

Short description:

Hola a todos. Soy Maxime Beunier, un defensor del desarrollador en MongoDB, con sede en París. Hoy quiero mostrarles cómo construir una API GraphQL sin servidor en menos de siete minutos. Me inspiré en la Universidad John Hopkins y sus gráficos, así que terminé construyendo una API REST, una API GraphQL y algunos gráficos de MongoDB Atlas. Construyamos ahora una API GraphQL en MongoDB Atlas y Realm. Voy a crear una nueva aplicación llamada Galaxy, vincularla al clúster de producción y desplegarla en Irlanda. Generaré un esquema y lo modificaré según sea necesario.

♪♪ Hola a todos. Soy Maxime Beunier. Soy un defensor del desarrollador en MongoDB, con sede en París. Estoy muy feliz de estar hablando hoy en GraphQL Galaxy, y hoy quiero mostrarles cómo construir una API GraphQL sin servidor en menos de siete minutos, así que abróchense los cinturones porque será muy, muy rápido.

Así que al comienzo de la COVID, como todos saben, fue hace aproximadamente dos años, mi idea era comenzar a construir algunos gráficos y algunas API para mostrar los datos y hacer que todos estén al tanto y que los datos estén disponibles para todos, así que terminé construyendo una API REST, una API GraphQL y algunos gráficos de MongoDB Atlas, como pueden ver aquí, y encontrarán los enlaces a todo eso en la última diapositiva de esta presentación.

Así que, me inspiré en la Universidad John Hopkins y sus gráficos, así que ellos proporcionan, en los términos de uso aquí, un repositorio de GitHub. Este repositorio, lo siento, se ve así, es solo un repositorio muy simple con algunos archivos CSV. Como pueden ver en la carpeta de series temporales, ellos proporcionan cinco archivos, el global, que es para todos los países, y algunos específicos para los Estados Unidos con más detalles para los Estados Unidos. Los archivos se ven todos iguales, se ven así, básicamente, saben, estado, provincia, país, región, latitud, longitud, y dos puntos para cada fecha, y si importan esos archivos en MongoDB utilizando, por ejemplo, la herramienta mongoinport que admite CSV, terminarán con un esquema absolutamente terrible, así que no querrán hacer eso.

En su lugar, querrán, por ejemplo, trabajar con fechas como esta en lugar de ser una clave. Querrán que sea un valor y preferiblemente una fecha, y también querrán trabajar con, como, datos geoespaciales, por ejemplo, para la localización, por lo que es más compatible en los gráficos de MongoDB, por ejemplo, y para índices 2D o este tipo de cosas. También hay otro archivo llamado tabla de búsqueda donde tienen más información sobre los países, como, por ejemplo, la población y algunos códigos de país, etc. Así que también quería esto en la mezcla, así que terminé haciendo algunos scripts de Python, que también están disponibles en uno de los enlaces, y al final terminé con algunos documentos como este, donde tienen, como, para cada país, tienen un montón de campos, saben, para describir a qué se relacionan los datos, una fecha y los valores para esa fecha en particular, ¿verdad? Así que al final, tengo esto, saben, un país, un lugar, una fecha para una fecha en particular y, saben, los números para ese día en particular.

Así que construyamos ahora una API GraphQL basada en esto, como pueden ver, terminé con, como, esas cinco colecciones aquí en la parte inferior, y voy a trabajar con la global solo para mostrarles cómo hacerlo. ¡Vamos a hackear! Para hacer esto, me estoy moviendo ahora a MongoDB Atlas, donde pueden alojar sus bases de datos de MongoDB en la nube de su elección, y tengo este clúster en producción aquí llamado COVID-19. Ahora me voy a Realm, que es el lugar donde pueden construir su aplicación, su aplicación sin servidor, que se mantendrá y vivirá sobre su clúster de MongoDB Atlas. Voy a crear una nueva aplicación que estará en producción. Como pueden ver, la voy a llamar Galaxy, por ejemplo. La voy a vincular al clúster real en producción y la voy a desplegar en Irlanda porque quiero que esté en Irlanda porque el clúster también está en Irlanda, así que, como, ambos están en el mismo lugar. Como pueden ver aquí, tienen un montón de opciones, y tengo desencadenantes, también tengo una sincronización, si quieren sincronizar datos en dispositivos móviles, por ejemplo, pero me voy a quedar con GraphQL. Voy a hacer clic aquí en Generar esquema porque GraphQL se basa en esquema, así que necesito generar un esquema que me lleva de vuelta a las reglas. En las reglas, puedo seleccionar mi colección aquí, global. Puedo decir que un usuario puede leer todos los datos porque estoy haciendo una API pública aquí. Configurar. Sí, quiero guardar. Entendido. Voy a generar el esquema. Voy a hacer clic aquí en Generar esquema solo para la colección global y voy a decir Generar esquema. Ahora tengo un esquema que se ha generado. Veo que falta el estado, así que puedo copiar y pegar el país, por ejemplo, y también puedo modificar el esquema como desee.

2. Using GraphQL and Authenticating Users

Short description:

Puedo decir Guardar, y eso es todo, estoy listo para trabajar. Para usar esto, necesito un token. Así que necesito autenticar a mis usuarios, para poder usar esto fuera de esta interfaz de GraphQL. Voy a usar el usuario anónimo. Voy a activarlo, guardar el borrador y desplegar mi aplicación sin servidor. Como pueden ver, ahora tengo un token. Este token se puede copiar y pegar aquí, y ahora puedo ejecutar mi consulta. Espero que les guste esta demostración. Muchas gracias por escuchar. Y ahora tienen todos los enlaces que prometí.

Puedo decir Guardar, y eso es todo, estoy listo para trabajar. Así que si vuelvo ahora a GraphQL, como pueden ver, tengo un webhook. Y tengo una consulta, y puedo enviar una consulta. Y si pongo Global en plural, obtengo varios documentos. Obtengo una matriz de documentos. Así que como pueden ver, está funcionando.

Para usar esto, necesito un token. Así que necesito autenticar a mis usuarios, para poder usar esto fuera de esta interfaz de GraphQL. Así que puedo usar la autenticación aquí, como pueden ver, tengo muchas opciones. Así que voy a elegir una fácil para hoy, pero cualquiera de ellas podría funcionar. Así que voy a elegir el usuario anónimo. Lo voy a activar, guardar el borrador, y voy a desplegar mi aplicación sin servidor aquí en la parte superior. Así que tengo que desplazarme hasta abajo del todo. Guardar y desplegar.

Así que ahora si vuelvo aquí, ya tengo preparadas algunas consultas con una que se ve así. Así que estoy consultando para Francia, para la parte continental y para alguna fecha, ya saben, en mayo. Así que voy a copiar este ID de la aplicación, que es el ID de la aplicación de mi aplicación sin servidor ahora en Realm. Necesito copiar y pegar esto aquí en la parte superior. Y creo que me falta esto. Oh no, tengo que copiar y pegar en todas partes. Así que necesito copiar y pegar aquí. Aquí puedo obtener un usuario anónimo. Oops. Genial. Como pueden ver, ahora tengo un token. Este token se puede copiar y pegar aquí, y ahora puedo ejecutar mi consulta. Aquí, y como pueden ver, tengo mi respuesta. Está un poco ampliado, pero sí, como pueden ver, tengo mi respuesta. Y tiene casos confirmados diarios y las fechas, eso es lo que obtengo.

Así que espero que les guste esta demostración. Muchas gracias por escuchar. Y ahora tienen todos los enlaces que prometí. Un montón de publicaciones de blog y también los gráficos que presenté al principio. Muchas gracias, y nos vemos la próxima vez, adiós.

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

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.
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.
Despídete de tus esquemas de API con tRPC
React Day Berlin 2022React Day Berlin 2022
29 min
Despídete de tus esquemas de API con tRPC
Today's Talk introduces TRPC, a library that eliminates the need for code generation and provides type safety and better collaboration between front-end and back-end. TRPC is demonstrated in a Next JS application integrated with Prisma, allowing for easy implementation and interaction with the database. The library allows for seamless usage in the client, with automatic procedure renaming and the ability to call methods without generating types. TRPC's client-server interaction is based on HTTP requests and allows for easy debugging and tracing. The library also provides runtime type check and validation using Zod.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
The Talk covers the speaker's personal journey into server-side rendering (SSR) and the evolution of web development frameworks. It explores the use of jQuery for animations in SSR, the challenges faced in integrating React with Umbraco, and the creation of a custom SSR framework. The Talk also discusses the benefits of Next.js and the use of serverless artifacts for deployment. Finally, it highlights the features of Astro, including its function per route capability.
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
GraphQL Galaxy 2021GraphQL Galaxy 2021
33 min
Baterías Incluidas Reimaginadas - El Resurgimiento de GraphQL Yoga
Envelope is a powerful GraphQL plugin system that simplifies server development and allows for powerful plugin integration. It provides conformity for large corporations with multiple GraphQL servers and can be used with various frameworks. Envelope acts as the Babel of GraphQL, allowing the use of non-spec features. The Guild offers GraphQL Hive, a service similar to Apollo Studio, and encourages collaboration with other frameworks and languages.
Aplicaciones sólidas de React y GraphQL para personas con prisa
GraphQL Galaxy 2022GraphQL Galaxy 2022
29 min
Aplicaciones sólidas de React y GraphQL para personas con prisa
The Talk discusses the challenges and advancements in using GraphQL and React together. It introduces RedwoodJS, a framework that simplifies frontend-backend integration and provides features like code generation, scaffolding, and authentication. The Talk demonstrates how to set up a Redwood project, generate layouts and models, and perform CRUD operations. Redwood automates many GraphQL parts and provides an easy way for developers to get started with GraphQL. It also highlights the benefits of Redwood and suggests checking out RedwoodJS.com for more information.

Workshops on related topic

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
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
React Advanced Conference 2022React Advanced Conference 2022
95 min
Seguridad de tipo de extremo a extremo con React, GraphQL y Prisma
Featured WorkshopFree
Sabin Adams
Sabin Adams
En este masterclass, obtendrás una visión de primera mano de lo que es la seguridad de tipo de extremo a extremo y por qué es importante. Para lograr esto, construirás una API de GraphQL utilizando herramientas modernas y relevantes que serán consumidas por un cliente de React.
Prerrequisitos: - Node.js instalado en tu máquina (12.2.X / 14.X)- Se recomienda (pero no es obligatorio) utilizar VS Code para las tareas prácticas- Un IDE instalado (se recomienda VSCode)- (Bueno tener) *Un conocimiento básico de Node.js, React y TypeScript
GraphQL para Desarrolladores de React
GraphQL Galaxy 2022GraphQL Galaxy 2022
112 min
GraphQL para Desarrolladores de React
Featured Workshop
Roy Derks
Roy Derks
Hay muchas ventajas en utilizar GraphQL como fuente de datos para el desarrollo frontend, en comparación con las API REST. Nosotros, los desarrolladores, por ejemplo, necesitamos escribir mucho código imperativo para recuperar datos y mostrarlos en nuestras aplicaciones y manejar el estado. Con GraphQL, no solo puedes reducir la cantidad de código necesario para la obtención de datos y la gestión del estado, sino que también obtendrás una mayor flexibilidad, mejor rendimiento y, sobre todo, una mejor experiencia de desarrollo. En este masterclass aprenderás cómo GraphQL puede mejorar tu trabajo como desarrollador frontend y cómo manejar GraphQL en tu aplicación frontend de React.
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
React Summit 2022React Summit 2022
173 min
Construye una aplicación WordPress sin cabeza con Next.js y WPGraphQL
Top Content
WorkshopFree
Kellen Mace
Kellen Mace
En esta masterclass, aprenderás cómo construir una aplicación Next.js que utiliza Apollo Client para obtener datos de un backend de WordPress sin cabeza y usarlo para renderizar las páginas de tu aplicación. Aprenderás cuándo debes considerar una arquitectura de WordPress sin cabeza, cómo convertir un backend de WordPress en un servidor GraphQL, cómo componer consultas usando el IDE GraphiQL, cómo colocar fragmentos GraphQL con tus componentes, y más.