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!

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
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!
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.
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
¿Sabías que podemos reemplazar los esquemas de API con una biblioteca liviana y segura? Con tRPC, puedes reemplazar fácilmente GraphQL o REST con formas inferidas sin esquemas ni generación de código. En esta charla, entenderemos los beneficios de tRPC y cómo aplicarlo en una aplicación de NextJs. Si quieres reducir la complejidad de tu proyecto, no te puedes perder esta charla.
No sabes cómo hacer SSR
DevOps.js Conf 2024DevOps.js Conf 2024
23 min
No sabes cómo hacer SSR
Un recorrido por la evolución del SSR en los últimos doce años. Cubriremos cómo han cambiado las técnicas, los problemas típicos, las herramientas que puedes utilizar y diversas soluciones, todo desde el punto de vista de mi experiencia personal como consumidor y mantenedor.
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
El Guild ha lanzado recientemente Envelop - un nuevo y moderno Framework de Servidor GraphQL y sistema de plugins. En esta charla compartiré una breve descripción de Envelop y por qué probablemente deberías actualizar tu servidor GraphQL existente a él.
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
En esta charla, veremos algunas de las opciones modernas para construir una aplicación full-stack de React y GraphQL con convenciones sólidas y cómo esto puede ser de enorme beneficio para ti y tu equipo. Nos enfocaremos específicamente en RedwoodJS, un framework full stack de React que a menudo se llama 'Ruby on Rails para React'.

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.
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.
Modelado de Bases de Datos Relacionales para GraphQL
GraphQL Galaxy 2020GraphQL Galaxy 2020
106 min
Modelado de Bases de Datos Relacionales para GraphQL
Top Content
WorkshopFree
Adron Hall
Adron Hall
En esta masterclass profundizaremos en el modelado de datos. Comenzaremos con una discusión sobre varios tipos de bases de datos y cómo se mapean a GraphQL. Una vez que se haya establecido esa base, el enfoque se desplazará a tipos específicos de bases de datos y cómo construir modelos de datos que funcionen mejor para GraphQL en varios escenarios.
Índice de contenidosParte 1 - Hora 1      a. Modelado de Datos de Bases de Datos Relacionales      b. Comparando Bases de Datos Relacionales y NoSQL      c. GraphQL con la Base de Datos en menteParte 2 - Hora 2      a. Diseño de Modelos de Datos Relacionales      b. Relación, Construcción de Tablas Multijoin      c. Complejidades de Consulta de Modelado de Datos Relacionales y GraphQL
Prerrequisitos      a. Herramienta de modelado de datos. El formador utilizará dbdiagram      b. Postgres, aunque no es necesario instalar esto localmente, ya que estaré utilizando una imagen de Dicker de Postgres, de Docker Hub para todos los ejemplos      c. Hasura