Volteando la Nube al Revés

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

GraphQL se está utilizando de formas realmente interesantes en partes del ecosistema de desarrolladores que te sorprendería escuchar, incluyendo Ethereum, así como para construir gráficos completos a partir de diversas APIs de terceros. En esta charla, mostraré cómo utilizar un enfoque similar para construir una interfaz de programación en la nube en AWS con GraphQL y por qué utilizar este enfoque tiene sentido para un desarrollador de front-end que busca aprovechar sus habilidades existentes.

This talk has been presented at React Summit Remote Edition 2021, check out the latest edition of this React Conference.

FAQ

GraphQL es un lenguaje de consulta y manipulación de datos para APIs que ofrece beneficios como validación de tipos, eficiencia en las consultas y autodocumentación a través de la introspección de esquemas. Es utilizado ampliamente por su flexibilidad y eficiencia al permitir a los desarrolladores solicitar exactamente los datos que necesitan.

Para implementar GraphQL en la nube, se puede utilizar una representación de esquema GraphQL que permite manejar las operaciones de forma eficiente a través de un único punto final. Las implementaciones suelen utilizar WebSockets para suscripciones y se pueden adaptar a diversas arquitecturas de microservicios.

GraphQL ofrece múltiples ventajas como la eficiencia en la consulta de datos, la capacidad de obtener exactamente lo que se necesita en una sola solicitud y la autodocumentación de las APIs. Estas características lo hacen preferible frente a las API REST tradicionales que suelen requerir múltiples endpoints y pueden resultar menos flexibles.

Implementaciones notables de GraphQL incluyen su uso como puerta de enlace de API en arquitecturas de microservicios, integración con APIs de terceros como las ofrecidas por One Graph, y aplicaciones en la industria blockchain utilizando tecnologías como Ethereum para facilitar el acceso y manipulación de datos descentralizados.

GraphQL unifica diferentes servicios y APIs detrás de un único punto final de consulta, lo que simplifica la integración y manejo de datos provistos por múltiples fuentes. Esto es particularmente útil en arquitecturas de microservicios donde diferentes servicios pueden ser consultados de manera coherente y eficiente.

AWS AppSync es un servicio de GraphQL administrado que facilita la creación de APIs GraphQL escalables y seguras en la nube de AWS. Ofrece características como suscripciones en tiempo real, sincronización de datos y control de acceso integrado, aprovechando las ventajas de GraphQL para desarrollar aplicaciones más dinámicas y eficientes.

Nader Dabit
Nader Dabit
36 min
14 May, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy discute cómo voltear la nube al revés utilizando GraphQL, destacando sus beneficios como validación de tipos, capacidades en tiempo real y eficiencia de consultas. Explora el uso de GraphQL como una puerta de enlace de API, especialmente en el contexto de microservicios, APIs de terceros y blockchain. La charla también cubre la indexación eficiente y la integración en la nube ofrecida por GraphQL, así como la construcción de APIs en la nube con AWS utilizando API Gateway y AWS AppSync. Concluye con ideas sobre cómo implementar APIs de GraphQL con herramientas como Amplify y CDK, y cómo crear APIs de GraphQL respaldadas por Lambda y DynamoDB.
Available in English: Turning the Cloud Inside Out

1. Introducción a GraphQL y Programación en la Nube

Short description:

Hoy voy a hablar sobre cómo convertir la nube del revés, creando una interfaz de programación en la nube con GraphQL. Vamos a empezar hablando de por qué GraphQL, por qué la gente está usando GraphQL y el estado actual del ecosistema de GraphQL. Vamos a ver cómo implementar lo que estoy hablando en la nube y darle la vuelta a la nube con una representación de esquema GraphQL. Y luego vamos a ver un poco de código. GraphQL es un lenguaje de consulta y manipulación de datos de código abierto para APIs y un tiempo de ejecución para cumplir consultas con datos existentes. Proporciona beneficios como la validación y comprobación de tipos, capacidades en tiempo real y eficiencia de consultas a través de un único punto final.

Hoy voy a hablar sobre cómo convertir la cloud del revés, creando una interfaz de programación en la cloud con GraphQL. Esto es mi enfoque como desarrollador front-end al construir aplicaciones en la cloud utilizando GraphQL con AWS y las cosas que he aprendido en los últimos años cuando trabajaba en AWS.

Entonces, ¿quién soy yo? Mi nombre es Nader Dhabit. Actualmente acabo de empezar a trabajar en una nueva empresa llamada Edge and Node. Edge and Node crea y soporta protocolos, aplicaciones y dApps en el ecosistema Web 3 y DeFi. Si estás interesado en saber más sobre lo que estoy haciendo ahora, contáctame en Twitter, dhabit3. También soy desarrollador web y móvil de profesión. Hago mucha enseñanza, escribo mucho y contribuyo bastante al código abierto.

Entonces, ¿cómo se va a dividir esta charla? Primero vamos a hablar de por qué GraphQL, por qué la gente está usando GraphQL y el estado actual del ecosistema de GraphQL. Vamos a hablar de la filosofía detrás de algunas de las cosas que voy a presentar hoy. Luego vamos a ver cómo implementar lo que estoy hablando en la cloud y darle la vuelta a la cloud con una representación de esquema GraphQL. Y luego vamos a ver un poco de código.

Así que empecemos hablando de GraphQL. No voy a hablar de qué es GraphQL en el sentido de la tecnología y cómo funciona. En su lugar, voy a hablar más sobre los beneficios de por qué la gente podría usar GraphQL, así como dónde se encuentra actualmente en el ecosistema. GraphQL es un lenguaje de consulta y manipulación de datos de código abierto para APIs y un tiempo de ejecución para cumplir consultas con datos existentes. A estas alturas probablemente hayas oído mucho sobre GraphQL, así que no quiero aburrirte con muchos detalles aquí. Solo piensa en GraphQL como una especie de reemplazo u otra opción además de Rust. Vamos a hablar de algunos de los beneficios. Estos son beneficios conocidos, pero también un poco de mi perspectiva sobre por qué me gusta GraphQL y por qué he visto a mucha gente adoptándolo, especialmente cuando trabajaba en... Validación de tipos. Obtiene validación y comprobación de tipos de forma nativa. Esto funciona muy bien con muchas de las aplicaciones que estoy construyendo en estos días con cosas como TypeScript y Dart con Flutter. El tiempo real es parte de la especificación real. En lugar de tener que decidir si quieres implementar WebSockets, polling, servidores y eventos, GraphQL normalmente tiene una especificación sobre cómo puedes hacer esto. Los detalles de implementación dependen de ti, pero mucha gente suele utilizar WebSockets para implementar suscripciones. Como desarrollador front-end, realmente no necesito entender los detalles de implementación de nadie bajo el capó. Facilita el cambio entre APIs y entender cómo funciona la parte de tiempo real. Eficiencia de consultas, terminas con un único punto final de GraphQL, pero con ese punto final de GraphQL puedes enviar tantas solicitudes como desees en una sola solicitud. De esto se derivan algunas cosas.

2. Beneficios de GraphQL y Aprender una vez

Short description:

GraphQL te permite enviar múltiples operaciones en una sola solicitud, evitando el sobreconsumo y el subconsumo. También genera automáticamente documentación de API a través de la introspección. Aprender GraphQL permite a los desarrolladores sumergirse en cualquier API y ser inmediatamente productivos. GraphQL proporciona consistencia y eficiencia, similar a la capacidad de React para construir diversas aplicaciones. Permite a los desarrolladores ser eficientes en diferentes capas sin tener que aprender nuevas tecnologías.

En primer lugar, si quiero tal vez hacer un evento de carga propio cuando mi aplicación se carga, puedo enviar múltiples operaciones en una sola operación GraphQL. Así que puedo decir consultar los datos del usuario, tal vez consultar los datos de los productos para una tienda de comercio electrónico que no voy a renderizar en la página. Incluso puedo obtener datos del carrito de compras que necesito. Todo esto se puede enviar en una sola solicitud en lugar de múltiples solicitudes. Pero también evita el sobreconsumo y el subconsumo en el sentido de que una vez que hayas construido tus consultas y mutaciones de GraphQL, supongo que en este caso serían consultas, puedes pedir exactamente los datos que deseas sin tener que escribir ningún código adicional en el backend. Entonces, para una aplicación que tiene múltiples vistas, tal vez algo que tiene una interfaz web también como una interfaz móvil, en lugar de tener que escribir diferentes puntos finales de API, puedes tener un único punto final de API, obtener los datos más ligeros en la aplicación móvil y luego los datos más pesados en la aplicación web, y todo funciona sin tener que escribir más código.

Una cosa realmente genial de GraphQL es que se documenta automáticamente. Genera automáticamente la documentación de tu API. Esto se hace utilizando la introspección de GraphQL. La introspección es esencialmente la capacidad de consultar qué recursos están disponibles en el esquema de la API actual, y una vez que se te da la API a través de la introspección, puedes ver las consultas, tipos, campos y directivas que admite. Una de las cosas importantes que voy a destacar en esta charla hoy es la consistencia. Para mí, una gran cosa al construir software y aprender a ser un desarrollador eficiente y bueno, para mí y mi career, ha sido encontrar cosas que me permitan aprender una vez y usar en múltiples lugares y ser eficiente. Por ejemplo, una de esas cosas es React. Como desarrollador de React, aprendo React, ahora puedo construir aplicaciones web, pero también puedo construir aplicaciones móviles aplicaciones de escritorio, todo tipo de cosas que la gente hace con React. Alguien, ya sabes, está presentando cómo construir, ya sabes, no solo diapositivas, sino en un software de edición de videos, cosas así. Aprendes React, haces muchas cosas. GraphQL, lo agrupo de una manera similar en el sentido de que una vez que aprendes GraphQL, puedes sumergirte en la API de cualquier persona, no solo dentro de tu propia empresa, sino dentro de cualquier empresa. Entonces, si te vas, te unes a otra empresa, sabes cómo usar GraphQL, puedes ser inmediatamente productivo. Miras el gráfico, sabes lo que está pasando. Pero lo que es aún más interesante son algunas de las cosas que voy a ver y mostrar en un momento en el que las personas están implementando estas implementaciones más grandes y más interesantes de gráficos y diferentes ecosistemas, y yo como desarrollador de GraphQL, en realidad puedo ir y ser muy, muy eficiente en esas diferentes capas sin tener que aprender nada. Y esto es algo que tuiteé hace poco tiempo, GraphQL, aprende una vez, crea, lee, actualiza, elimina y suscríbete en cualquier lugar. Es una especie de juego con React, aprende una vez, escribe en cualquier lugar o algo así. Lo siento, eso fue React Native. En general, es la misma idea.

3. Using GraphQL as an API Gateway

Short description:

GraphQL es perfecto para sistemas complejos y microservicios. Unifica múltiples sistemas detrás de su API y oculta su complejidad. El sentimiento de los desarrolladores hacia GraphQL es alto. Esta charla trata sobre el uso de GraphQL como una puerta de enlace de API y cubre microservicios, APIs de terceros, Blockchain y Ethereum.

Y luego lo segundo que voy a enfatizar es la consistencia, pero también la implementación de GraphQL en una arquitectura de microservicios. GraphQL es perfecto para sistemas complejos y microservicios como he explicado aquí. Pero esencialmente, al integrar múltiples sistemas detrás de su API, GraphQL los unifica y oculta su complejidad detrás de este gráfico. El servidor de GraphQL es el encargado de obtener los datos de los sistemas existentes y empaquetarlos en el formato de respuesta de GraphQL.

Ahora echemos un vistazo a GraphQL. En este punto, GraphQL es definitivamente popular. AWS, Netflix, Twitter, Peloton, Reddit, Twilio, GitLab, Twitch, PayPal, Spotify. Quiero decir, nombralo, la mayoría de las empresas grandes en estos días lo están utilizando para cosas críticas o al menos en algún lugar. Estamos viendo una adopción más amplia. Ya es algo común.

Algo que realmente me interesa es el sentimiento de los desarrolladores. Supongo que el sentimiento de los desarrolladores es importante para mí, ya que me ayuda a comprender qué seguirá siendo relevante y qué eventualmente desaparecerá. Al final del día, si a los desarrolladores les gusta hacer o usar algo en particular, es más probable que no solo se mantenga, sino que también mejore. A medida que las herramientas mejoran, más personas se unen al ecosistema y se reciben más comentarios para mejorar lo que se está construyendo. El sentimiento de los desarrolladores hacia GraphQL es muy alto en general, según las diferentes encuestas que he visto. Estas encuestas no cuentan toda la historia, pero me indican que a los desarrolladores les gusta usar GraphQL, y eso me dice mucho. Me importa lo que los desarrolladores valoran porque me interesa comprender hacia dónde se dirige la industria, para poder seguir la misma dirección. Es una preferencia personal, ya que todos somos diferentes, ¿verdad? Haz lo que funcione para ti. Pero para mí, lo que ha funcionado es dirigirme hacia una dirección en la que sé que si invierto tiempo en aprender y hacer algo, podré aprovecharlo en el futuro, ya sea consiguiendo un trabajo que utilice esas habilidades o haciendo consultorías o lo que sea. Tal vez escriba un libro.

Dicho esto, lo que realmente trata esta charla es la idea de usar GraphQL como una puerta de enlace de API. Hablaré sobre esto de varias formas antes de llegar a Cloud. Hablaré un poco más sobre microservicios. Hablaré sobre un caso de uso interesante relacionado con APIs de terceros, y también quiero hablar sobre Blockchain y Ethereum. Esto tiene algo que ver con el trabajo que tengo actualmente. Hablemos sobre microservicios. Puedes pensar en las arquitecturas de microservicios de varias formas. Una implementación muy básica podría ser tomar varios puntos finales que tienes y hacerlos accesibles dentro de tu aplicación, y estás llamando a este único punto final en AWS. Tal vez este punto final esté configurado en DigitalOcean o en otros servicios, pero todos son diferentes microservicios y tienen diferentes puntos finales y diferentes APIs. Esto no suele ser la forma correcta de hacerlo, porque terminas con una experiencia del desarrollador del lado del cliente muy inconsistente y no entiendes cómo se hace nada porque todo se hace de manera un poco diferente.

4. API Gateway with GraphQL and Blockchain

Short description:

La puerta de enlace de API con GraphQL es una opción popular. One Graph combina múltiples servicios detrás de un único punto final de GraphQL, proporcionando una forma consistente de trabajar con diferentes APIs. Permite consultar varios servicios sin necesidad de leer extensa documentación. Otro tema interesante es blockchain y Ethereum, donde se están construyendo aplicaciones descentralizadas (DApps) para préstamos, intercambio de tokens, inversiones, financiamiento colectivo y pagos. Compound, un protocolo de mercado monetario en Ethereum, permite ganar intereses al prestar activos de criptomonedas. Sin embargo, actualmente hay limitaciones en la construcción de aplicaciones directamente sobre blockchains.

Lo que suele verse es que alguien coloca una puerta de enlace de API frente a todos estos microservicios. Se obtiene un punto final de API consistente y luego se utilizan diferentes cargas útiles, diferentes parámetros de URL, cosas así. Algunas de estas cosas se abstraen detrás de esta puerta de enlace de API y se logra una mayor consistencia. Lo que se está volviendo realmente popular en AWS y entre muchos clientes que veo que lo utilizan, pero también fuera de AWS, es simplemente implementar GraphQL como tu puerta de enlace de API. Al hacer esto, obtienes todos los beneficios típicos que obtendrías de una puerta de enlace de API REST tradicional, pero con todos los diferentes beneficios que ofrece GraphQL. Definitivamente, la verificación de tipos en tiempo real que se obtiene de cualquier mutación, lo cual es realmente impresionante, la eficiencia de las consultas, la documentación de la API, todas las cosas de las que ya hemos hablado.

Ahora, eso está bien y todo, la gente lo está haciendo. Hablemos de casos de uso más interesantes. Uno de ellos es lo que Sean Grove está haciendo en One Graph con APIs de terceros. One Graph es realmente genial porque reúne varios servicios detrás de un único punto final de GraphQL, un montón de APIs diferentes que tradicionalmente eran APIs REST. Algunas de ellas también podrían ser APIs de GraphQL, pero la idea es que tienes este único gráfico con el que puedes trabajar. Lo que eso significa para mí como desarrollador, si alguna vez has trabajado con algo como la API de Twitter o la API de YouTube o Netlify, Salesforce, Air Table, cualquiera de estas APIs, todas se implementan de manera un poco diferente, ¿verdad? Pero ¿qué pasaría si hubiera una forma única de hacer esto? ¿Qué pasaría si cada empresa estuviera implementando su capa de API de la misma manera? Bueno, eso es más o menos lo que hace One Graph, y eso es lo que ahora puedes hacer con One Graph. Así que puedes consultar APIs como Air Table, Salesforce, CloudFlare, Dev.to, Dribbble, Dropbox, MailChimp, Google, YouTube, Twitter, Trello, Stripe, todo tipo de servicios. Creo que hay docenas de servicios a los que puedes consultar desde este único gráfico. Es realmente interesante. Realmente te recomiendo que lo pruebes porque, como desarrollador, ahora puedo sumergirme en este gráfico y tener éxito de inmediato sin tener que leer ninguna documentación, y cualquier documentación que necesite está ahí mismo con esa introspección de esquema de GraphQL que mencioné antes. Es autoexplicativo. Es muy bueno. Echa un vistazo a One Graph. Me gusta mucho la idea de hacer esto, y creo que puede haber incluso un par de personas más haciendo cosas similares con estas APIs de terceros.

Lo siguiente de lo que quiero hablar es blockchain y Ethereum. Dentro de este espacio, dentro del espacio de finanzas descentralizadas y la Web 3, tienes esta idea de aplicaciones descentralizadas o lo que se conocen como DApps. Con todo este ecosistema, hay todo tipo de aplicaciones diferentes que están surgiendo, construidas de esta manera utilizando estas tecnologías, supongo que podrías decir. Cosas relacionadas con préstamos, intercambio de tokens, es decir, cambiar moneda entre sí, inversiones, financiamiento colectivo, pagos, todo tipo de cosas. Es un espacio realmente interesante, algo que me ha interesado mucho. Echemos un vistazo a uno de estos, Compound. Compound es un protocolo de mercado monetario construido con Ethereum. Permite a cualquier persona o incluso a cualquier máquina ganar fácilmente intereses al prestar sus activos de criptomonedas. Los activos prestados luego se pueden utilizar como garantía para pedir prestados otros activos bloqueados en el protocolo. Por el momento, no se pueden construir aplicaciones excelentes directamente sobre blockchains.

5. Efficient Indexing and Cloud Integration

Short description:

El problema con la recuperación de datos en la web y en blockchain es la falta de indexación y organización eficientes. El gráfico resuelve esto al ofrecer un protocolo de indexación consistente utilizando GraphQL. Empresas como Compound, Uniswap y Foundation están utilizando el gráfico para acceder fácilmente a los datos. Aprender GraphQL te permite consultar datos de blockchain y trabajar con servicios en la nube como AWS.

El problema es que necesitas tener los data indexados y organizados para una recuperación eficiente. Así que piensa en la web y en lo que podrías necesitar hacer si no existiera algo como un motor de búsqueda. ¿Cómo encontrarías todos estos data? Probablemente tendrías que hacer mucho trabajo. De manera similar con los datos de blockchain, si quieres obtener data de la blockchain, lleva mucho tiempo, mucho trabajo y mucho esfuerzo. Y la mayoría de las personas, la mayoría de las empresas terminan indexándolo en su propio servidor, lo cual rompe la idea de descentralización.

Entonces, con blockchain, esta capa de indexación, ese es tradicionalmente el trabajo que hacen las bases de datos en esta pila tecnológica descentralizada. Pero esa capa de indexación faltaba en la pila de Web3. Y ahí es donde entra en juego el gráfico. El gráfico es un protocolo de indexación para consultar redes, como Ethereum, IPFS y en el futuro otras blockchains. Entonces, con el gráfico, cualquiera puede construir y publicar estas API abiertas llamadas subgrafos, haciendo que los datos sean fácilmente accesibles en forma de una API de GraphQL. Antes, los equipos del gráfico tenían que desarrollar y operar servidores de indexación propietarios ellos mismos, lo cual no solo requiere recursos de ingeniería y hardware significativos, sino que también rompe esta importante propiedad de seguridad, o todas las propiedades de seguridad necesarias para la descentralización.

Y el gráfico resuelve ese problema al ofrecer este protocolo de indexación consistente. Y lo hace utilizando GraphQL. Ahora cualquiera puede construir y publicar estas API abiertas llamadas subgrafos utilizando estos datos más fácilmente accesibles. Muchas empresas están utilizando el gráfico ahora. Muchas empresas diferentes que son muy, muy populares tienen una gran escala, supongo que podrías decir en este punto. Así que Compound, Uniswap, muchas de esas plataformas NFT están utilizando eso, incluyendo Foundation, que es una plataforma NFT bastante genial para comprar NFT y arte y cosas así. Así que esta es otra aplicación de GraphQL. Si aprendes GraphQL, no solo puedes acceder a todas estas otras API que estaba mirando con OneGraph, además de todo lo que podrías estar haciendo en tu trabajo diario, ahora puedes también consultar datos de blockchain, lo cual me parece muy interesante. Además de eso, ¿qué hay de la nube? Esto es realmente de lo que estoy aquí para hablar. Como desarrollador front-end, comencé en AWS y miré la consola de administración de AWS y me intimidé mucho. Incluso como alguien que ha estado trabajando en AWS durante más de tres años, todavía me intimida este panel de control. Lo que realmente me gustaría hacer, quiero crear un esquema como lo haría con mis API típicas de GraphQL. Quiero poder definir los data con los que me gustaría trabajar. Entonces, en este caso, tomemos un ejemplo básico nuevamente, vamos a ver un tipo de producto y un tipo de etiqueta. Y quiero tener un par de operaciones que interactúen con alguna capa de data que traiga esta información. Entonces, tal vez quiera acceder a un tipo de base de datos para la consulta de productos.

6. Building Cloud APIs with AWS

Short description:

Quiero acceder a un tipo diferente de base de datos y a un servicio de aprendizaje automático dentro de AWS. No estoy seguro de cómo juntarlo todo y combinar múltiples fuentes de datos en una sola consulta. AWS ofrece dos formas principales de construir APIs en la nube: API Gateway y AWS AppSync. En ambos casos, es necesario comprender el entorno de ejecución, los permisos y los SDK para interactuar con las fuentes de datos. Hay dos tipos de entornos de ejecución: con servidor y sin servidor. Los entornos con servidor brindan un control total pero requieren más trabajo de gestión e implementación.

Quiero acceder a un tipo diferente de base de datos para la consulta de productos. Y quiero acceder a un servicio de aprendizaje automático incluso para mi consulta de detección de etiquetas en imágenes. Entonces, ¿cómo puedo hacer que algo como esto funcione dentro de AWS, verdad? Esa es más o menos la pregunta que quiero responder. Me gusta usar GraphQL, pero no sé cómo juntar todas estas cosas. Incluso tal vez quiera hacer algo más complicado donde tengo esta consulta de obtener información de cuenta donde combinamos múltiples tipos diferentes de fuentes de datos, bases de datos, y todo se devuelve en una sola consulta. Al igual que lo que normalmente harías con GraphQL, ¿cómo lo vamos a hacer en AWS, aprovechando muchos de estos diferentes servicios y cosas de AWS?

Estamos hablando de construir APIs en la nube en este punto. ¿Cómo construyes APIs en la nube? Hay dos formas principales de hacerlo con algo como AWS. Está el servicio de API Gateway, que es un servicio de API REST, y luego está AWS AppSync, que es un servicio de GraphQL administrado. Voy a hablar un poco sobre ambos. Y dentro de ambos, hay tres piezas principales, en mi opinión, que necesitas comprender cómo funcionan. Uno es el entorno de ejecución. El entorno de ejecución es donde realmente se ejecuta tu código. Esto puede ser un servidor o puede ser una función sin servidor. Y luego tienes tus permisos. ¿Cómo hago que mi código de función se comunique con esta base de datos? ¿Y cómo hago que funcione? ¿Cómo lo configuro? Y finalmente, ¿cuáles son los diferentes SDK que necesito para interactuar con estas fuentes de datos? Entonces, estoy en esta función, estoy escribiendo TypeScript. Quiero interactuar con esta base de datos. ¿Cómo lo hago en realidad? Esas son las tres cosas que quiero desglosar aquí.

En cuanto al entorno de ejecución, hay dos tipos principales de entornos de ejecución. Tienes el entorno con servidor, lo que significa que se ejecuta en un servidor que tú mantienes. Y luego tienes el sin servidor, lo que significa que estás trabajando en una función sin servidor. Y en el entorno con servidor, tienes beneficios. Hay compensaciones en todo, ¿verdad? Cuando administras tu propio servidor, tienes control total sobre todo, lo que significa que tienes todo el entorno de ejecución. No hay limitaciones aparte del sistema en el que se ejecuta tu servidor, podrías pensar, ¿verdad? Lo cual es bueno y malo, porque también tienes más cosas que debes tener en cuenta. Y las desventajas son que tienes que hacer todo esto y escribirlo tú mismo. Entonces, tienes que implementar las suscripciones tú mismo. Tienes que comprender cómo escalar estas suscripciones. Tienes que comprender cómo escalar tu API en general. Es posible que tengas que implementar el almacenamiento en caché. También tienes que lidiar con los servidores mismos, y con todas las cosas relacionadas con la seguridad, autenticación, autorización.

7. Benefits and Downsides of Serverless with AppSync

Short description:

Cuando usas serverless, tienes menos control pero también menos trabajo. AppSync proporciona seguridad integrada, escalabilidad, resistencia y un modelo de pago sin servidor. Sin embargo, estás limitado por el servicio de API proporcionado y las tareas de larga duración no son adecuadas para serverless. Recomiendo encarecidamente AppSync para un entorno de ejecución sin servidor.

Y tienes que pensar en todas las cosas específicas de GraphQL, como las consultas maliciosas. Así que todas estas cosas, son cosas que tienes que implementar tú mismo. Así que nuevamente, hay compensaciones.

Luego vamos a hablar de, hemos hablado de server full. Hablemos de serverless. Así que hay dos formas principales de hacer esto en AWS al menos. Una es usando AppSync, que es un servicio GraphQL administrado. Y luego está usando Amazon API Gateway en AWS Lambda, que no está realmente diseñado para GraphQL. Así que me voy a centrar en AppSync. Y este es un servicio del que soy un gran fan. Si has visto mi canal de YouTube, ya no trabajo en AWS, pero sigue siendo mi servicio en la nube favorito para trabajar y lo será. AppSync es un servicio de API GraphQL administrado. Definitivamente recomiendo echarle un vistazo. Pero todo de lo que voy a hablar va a ser utilizando AppSync.

Entonces, ¿cuáles son algunos de los beneficios de usar serverless? Los beneficios de serverful, hemos hablado de que tienes el control del entorno de ejecución, pero tienes que hacer mucho más trabajo. Creo que serverless cambia eso en cierto sentido, haces menos trabajo, pero también tienes menos control sobre las cosas que actualmente no son compatibles. Por ejemplo, al trabajar con AppSync, tienes seguridad integrada, autenticación y autorización. Tienes suscripciones integradas que pueden escalar hasta decenas de millones de clientes conectados, escalabilidad, resistencia, todo esto se tiene en cuenta. El almacenamiento en caché está integrado. No tienes que administrar tus servidores. Tienes menos código con el que lidiar y estás utilizando un modelo de pago sin servidor. En lugar de pagar por un gasto de capital, un gasto constante, lo estás intercambiando por un gasto variable, lo que significa que estás pagando por el cómputo que se está utilizando. Si está inactivo, no se te cobra.

Entonces, ¿cuáles son las desventajas de usar algo como AppSync? Estás limitado por el servicio de API que se te proporciona. Si AppSync no ofrece algo que necesitas, estás un poco fuera de suerte. Si conoces tu consistencia de alta escala, de manera constante a lo largo del tiempo, podría ser más barato administrar tus propios servidores. Creo que serverless es especialmente adecuado para entornos dinámicos donde tu tráfico sube y baja, y no estás seguro de cómo será tu tráfico en cuanto a un modelo de costos. Además, si necesitas tareas de larga duración, serverless no es un buen entorno para eso. Normalmente necesitas tu propio servidor para algo así. Mi recomendación, basada en todo lo que he hecho, todo con lo que he trabajado, soy un gran fan del entorno de ejecución sin servidor, especialmente de AppSync.

8. Permissions and SDKs in AWS Cloud

Short description:

Los permisos en AWS Cloud se gestionan mediante Identity and Access Management (IAM). IAM te permite otorgar permisos a los recursos para realizar operaciones en los servicios. Al establecer permisos utilizando IAM, puedes interactuar con bases de datos y servicios en tu entorno. Otra consideración al trabajar con entornos de ejecución es el uso de SDKs. AWS proporciona un único SDK para varios entornos de ejecución, lo que te permite importar el cliente necesario y ejecutar operaciones con solo unas pocas líneas de código. El SDK de AWS admite una amplia gama de servicios, incluidos los servicios de aprendizaje automático como reconocimiento.

Así que tómalo con precaución. Yo probaría lo que quieras tú mismo antes de tomar cualquier decisión.

Lo siguiente son los permisos. Ahora que entendemos que queremos usar esta o aquella implementación de servidor o serverless, ¿cómo vamos a lidiar con cosas como los permisos? En AWS, en Cloud, tienes esta idea típica de IAM, que significa Identity and Access Management. Identity Access Management suena más complicado, creo, de lo que es. Así que veamos qué significa realmente.

Digamos que he creado un entorno, he creado esta función lambda donde puedo escribir algo de Typescript. Tengo esta tabla DynamoDB y quiero hacer una llamada a la API, o quiero hacer una consulta a la base de datos, supongo que podrías decir, desde mi función a esta tabla base de datos. Ahora, de forma predeterminada, tienes acceso restringido. Por defecto, se te da el acceso denegado en la mayoría de los entornos de Cloud. Lo que significa que si intento acceder a algo y no le he dado estos permisos, entonces, por defecto, va a decir que no puedes hacer eso.

Todo lo que IAM está diciendo, es que voy a darle a este recurso permiso para realizar estas diferentes operaciones en este servicio. Podría decir que quiero que mi función lambda pueda crear, actualizar, eliminar y leer de esta tabla. Una vez que se establece ese permiso utilizando IAM, ahora puedo empezar a interactuar con esta base de datos. Vamos a ver cómo se ve esto en el código en solo un segundo.

Luego, lo último que debes tener en cuenta, si estás trabajando con uno de estos entornos de ejecución, son los SDKs. Lo bueno de esta idea de los SDKs es que solo hay un SDK principal con el que tienes que lidiar en el servidor. Ahora, si estás trabajando con AppSync, puedes hablar directamente con alguna base de datos como DynamoDB, Elasticsearch o Serverless Aurora, o puedes mapear tus operaciones en este entorno de ejecución como Lambda y hablar con cualquiera de los servicios que desees. Puedes ejecutar Node.js, puedes ejecutar Python, puedes ejecutar Go. Todos estos diferentes entornos de ejecución tienen un SDK de AWS que admite todos los demás servicios. Todo lo que necesitarías hacer sería importar el SDK de AWS y Node.js, y puedes hacer algo como esto.

Si quieres hablar con DynamoDB, adelante e importa el cliente de DynamoDB y crea nuestro comando diciendo que queremos hacer algo como escanear, en este caso, el comando de escaneo. Luego, en cuatro líneas de código, incluidas las importaciones, sin incluir el controlador, podemos escanear esta tabla y obtener todos los datos que queremos de la tabla. Hay cientos de servicios con los que puedes trabajar desde este SDK de AWS, un proyecto bastante masivo. Digamos que quieres trabajar con el servicio de aprendizaje automático como reconocimiento. Todo lo que necesitas hacer es importar el SDK de AWS. Vamos a importar el cliente de reconocimiento y el comando de detección de etiquetas. Construimos nuestro comando, pasando los parámetros. En este caso, queremos especificar el bucket de S3 y la imagen de la que queremos detectar etiquetas. Luego ejecutamos la operación y tenemos esos datos de retorno, que están en formato JSON en este ejemplo.

9. Deploying GraphQL APIs with Amplify and CDK

Short description:

Hablemos de implementar APIs de GraphQL utilizando herramientas como Amplify y CDK. Con Amplify, agregar una API de GraphQL es tan simple como ejecutar Amplify add API. La CLI de Amplify se encarga de todo el código de infraestructura y la configuración por ti, lo que te permite centrarte en tu esquema y directivas de GraphQL. Por otro lado, CDK proporciona una forma de crear un nuevo proyecto ejecutando CDK init. Esto configurará todo lo que necesitas y creará un stack para que puedas comenzar a escribir código.

Dicho esto, todavía estoy confundido porque ¿cómo realmente juntamos todas estas cosas? Tal vez entendamos que necesitas todas estas cosas, pero juntarlas sigue siendo muy, muy difícil en mi cabeza en este momento. Hablemos de hacer esto un poco más fácil uniendo todas estas cosas y desplegando algo. Aquí es donde entran en juego muchas de lastooling y cosas en las que hemos estado trabajando cuando estaba en AWS para facilitar esto. Hay un par de opciones de implementación. Por supuesto, puedes ir directamente al panel de AWS y hacer todo esto, pero eso para mí es más complicado que usar algunas de estas herramientas que existen. En particular, con AppSync, AWS CDK, AWS SAM, AWS Amplify, y el framework serverless son, en mi opinión, algunas de las más fáciles de usar. También puedes usar CloudFormation, que es muy robusto, pero también es una forma muy detallada de hacer esto. Recomendaría usar Amplify, el framework serverless, o tal vez CDK si estás comenzando. Voy a hablar sobre Amplify y CDK para darte una visión general de dos formas diferentes de hacer esto.

Con Amplify, si quieres agregar una API deGraphQL, simplemente ejecutas Amplify add API. En realidad, no tienes que configurar todos estos diferentes servicios. No tienes que lidiar con los permisos. La CLI de Amplify escribirá todo el código de infraestructura por ti y lo conectará todo. A partir de ahí, todo lo que necesitas hacer es lidiar con tu esquema deGraphQL, y en tu esquema, puedes usar estas directivas que forman parte de lo que se llama la biblioteca de transformación deGraphQL para modelar y lidiar con muchas de estas otras cosas por ti también. Entonces, digamos que queremos tener una base de datos de publicaciones en una tabla de DynamoDB. Todo lo que necesitamos agregar es esta directivaat model, y ahora tendremos nuestra tabla que se crea, así como todos los resolvers que necesitaremos para las operaciones CRUD, las operaciones de lista y las suscripciones. A partir de ahí, podemos modificar nuestro código del resolver si queremos. También podemos modelar reglas de autorización. Entonces, en este caso, tengo esta directivaat auth rules que dará permisos de propietario al elemento que se crea. Y hay todo tipo de reglas diferentes que puedes establecer aquí. De hecho, creo que hay siete directivas de nivelrate que también puedes usar para hacer otras cosas como modelar relaciones entre datos. También podemos decir, oh, quiero asignar una consulta o mutación deGraphQL a una función deLambda. Y luego, dentro de esta función, tenemos todo el entorno de ejecución completo. Ahora, todo lo que tienes que hacer es agregar esta directivaat function y la biblioteca de transformación deGraphQL conectará todo por ti utilizando la CLI de Amplify. Así que siempre que tengamos esta función creada, ahora podemos ir a esta función, escribir toda la lógica empresarial que necesitamos y devolver una matriz de imágenes. Siempre y cuando vuelva en la estructura definida en nuestro esquema, entonces estamos listos. Es muy poderoso usar la directivaat function. Soy un gran fan de eso.

Veamos un poco de código real y en el código vamos a ver un CDK. Entonces, con CDK, es posible que desees crear un nuevo proyecto para hacer esto, simplemente ejecutas CDK init, esto configurará todo lo que necesitas y creará un stack para que puedas comenzar a escribir código.

10. Creating a GraphQL API with Lambda and DynamoDB

Short description:

Ahora creemos una API de GraphQL respaldada por una función Lambda y una tabla DynamoDB. Importamos la biblioteca de AppSync y configuramos parámetros como el nombre, la ubicación del esquema y el tipo de autorización base. Definimos una fuente de datos creando una función Lambda y mapeando las operaciones de GraphQL en ella. Por último, mapeamos las operaciones de nuestra API en Lambda utilizando resolvers. Para obtener más información, visita mi canal de YouTube, GitHub, el blog móvil de AWS y la documentación de Amplify. Este es el futuro de la implementación de API en la nube.

Ahora veamos cómo podríamos crear una API de GraphQL respaldada por una función Lambda y una tabla DynamoDB. Diremos, hey, queremos crear una nueva API. Entonces importamos la biblioteca de AppSync y llamamos a AppSync.GraphQLAPI. Ahora podemos configurar varios parámetros como el nombre, la ubicación del esquema y cualquier cosa adicional como nuestro tipo de autorización base. En este caso, queremos una API pública con una clave de API. Esto desplegará nuestra API. Podemos ejecutar este código por sí solo y ahora tenemos nuestra API.

Sin embargo, la API no hará nada porque no tenemos una, no hemos definido dónde deben mapearse nuestros resolvers y no hemos definido una fuente de datos. Así que a continuación podríamos definir nuestra fuente de datos. Podríamos decir que queremos tener una función Lambda como fuente de datos, lo que significa que vamos a mapear nuestras operaciones de GraphQL en la Lambda. Pero para hacer eso, primero debemos crear nuestra función Lambda. Así que lo estamos haciendo aquí. Estamos configurando el runtime a node.js. Estamos definiendo el tamaño de memoria y estamos definiendo la ubicación del código para el código que vamos a ejecutar. Y finalmente, ahora tenemos nuestro esquema. Tenemos nuestra API y tenemos nuestra función Lambda y tenemos nuestra fuente de datos.

Ahora podemos comenzar a mapear operaciones que hemos definido en nuestro esquema en esta fuente de datos. Todo lo que tenemos que hacer es decir create resolver. Establecemos el nombre del tipo y el nombre del campo. Así que en este caso estamos diciendo, queremos una consulta de listar publicaciones, una mutación de crear publicaciones, y una consulta de buscar imágenes. Y ahora estamos mapeando estas operaciones de la API en Lambda. Dicho esto, diría que si quieres aprender más sobre cómo hacer esto, visita mi canal de YouTube. Tengo muchos videos sobre cómo construir este tipo de arquitectura. youtube.com/natterdabit. También te recomendaría que veas mi GitHub, github.com/dabit3. Consulta el blog móvil de AWS, la documentación de Amplify. Realmente creo que este es el futuro de la implementación de API en la nube. Veremos mucha más adopción. Soy un gran fan de esto. Si no te has dado cuenta, realmente me importa este tema.

QnA

Excitement, Introductions, and Audience Questions

Short description:

Estoy realmente emocionado por esto. Gracias por revisar mi charla. Soy natterdabit, trabajo en DevRel en Edge and Node. Este es un gran evento con cosas increíbles, charlas geniales y masterclasses. Gracias a todos los organizadores. ¿Cómo te presentas en las fiestas? Me presento como Catalyn o Unicorn Dev. La encuesta State of JS tuvo respuestas interesantes y los desarrolladores full-stack están en aumento. Me sorprendió la cantidad de desarrolladores full-stack aquí. Ahora, pasemos a las preguntas del público. John B preguntó por fuentes recomendadas sobre GraphQL y la charla. Escribí una publicación en el blog con el mismo título que esta charla.

Estoy realmente emocionado por esto. Sí, gracias por revisar mi charla. Una vez más, soy natterdabit. Trabajo en DevRel en Edge and Node. Echa un vistazo a Edge and Node. Es mi nueva empresa. Estoy muy emocionado por eso también. Y muchas gracias por revisar mi charla. Nos vemos por aquí.

Estoy realmente, realmente feliz de estar aquí y este es un gran evento. Quiero decir, esto es simplemente increíble, como si simplemente... Es difícil expresarlo con palabras cuántas cosas increíbles han sucedido durante todo esto, entre las panel discussions, todas las charlas geniales, las masterclasses. Realmente buen trabajo de todos los organizadores. Eso es todo lo que tengo que decir porque sé que esto debe ser mucho trabajo. Sí, muchas gracias. Sí, es una conferencia muy agradable, eso seguro. Es la primera vez que la veo. Espero hacerlo en el futuro, nunca se sabe, pero es muy agradable ver, como todos están haciendo mucho trabajo y, por supuesto, invitando a oradores realmente geniales como tú.

Entonces, hiciste la pregunta en primer lugar, ¿y cómo te presentas en las fiestas? Puedo responder eso, me presento como Catalyn o Unicorn Dev, pero dejaste un par de puntos allí, como desarrollador web, parece que está ganando con un 51%. ¿Qué opinas al respecto? Sí, eso es bastante genial. Como, esta fue una pregunta que se hizo en la encuesta State of JS que pensé que tenía algunas respuestas interesantes, pero creo que está muy enfocado en el front-end, al igual que este evento. Pero me preguntaba cómo se distribuye entre los desarrolladores de front-end y los desarrolladores full-stack que vienen a este tipo de eventos, pero también quién quiere ingresar al front-end que podría venir aquí, y luego alguien que es más como un programador, pero más en el nivel C. Entonces, eso típicamente sería como un CTO. Así que pensé que era una buena variedad de preguntas. Pero realmente me sorprendió ver cuántos desarrolladores full-stack hay aquí, pero creo que esa tendencia está aumentando con todo este serverless full-stack y cloud full-stack y Vercel y todas estas otras cosas que están surgiendo que permiten a los desarrolladores involucrarse en el full-stack. Gran parte de las cosas en las que realmente me he enfocado en mi career, también en los últimos años se orienta hacia eso también. Así que eso es bueno, resultados interesantes. Bien.

Así que tenemos algunas preguntas del público. Comenzaré con la pregunta dirigida por John B, ¿tienes alguna fuente recomendada para obtener más información sobre estos temas? Tal vez GraphQL o la charla que diste? Sí, quiero decir, lo que fácilmente puedo mostrarte y enseñarte es que escribí una publicación en el blog que se llama exactamente igual que esta charla.

Turning the Cloud Inside Out

Short description:

Turning the Cloud Inside Out es el resultado de los últimos años en el ecosistema de GraphQL. Para obtener más información, lee sobre GraphQL desde un nivel teórico y sigue a Sean Grove, Yuri Goldstein y Eve Pursello. Se nos está acabando el tiempo, pero fue un placer tener a Nadir aquí. Espero que podamos volver a encontrarnos después de la pandemia.

Se llama Turning the Cloud Inside Out. Así que permíteme pegar el enlace allí en el discord. Pero, quiero decir, realmente esto es una culminación de todo lo que ha sucedido en el ecosistema en los últimos años. Así que cualquier cosa que se haya escrito sobre GraphQL desde un nivel teórico probablemente sería bueno leerlo también.

Si quieres seguir a algunas personas interesantes, hay un montón de personas, pero tal vez las personas que están en este espacio son Sean Grove de OneGraph, lo mencioné en la charla. Siempre está haciendo cosas realmente innovadoras. Yuri Goldstein también está haciendo cosas realmente interesantes que están relacionadas con el tooling de GraphQL. Eve Pursello es como, con mucho, la mejor profesora en el espacio, tal vez porque ha escrito libros, tiene un curso muy completo que se lanzará, muchas cosas interesantes. Así que si sigues a esas tres personas y ves parte del trabajo que han hecho, aprenderás mucho sobre GraphQL.

Genial, no estoy seguro si se nos está acabando el tiempo. ¿Tenemos alguno? Bien, así que se nos está acabando el tiempo. Nadir, fue un placer, realmente te extraño. Espero que esta pandemia termine y podamos volver a encontrarnos, tomando algo y simplemente discutiendo en general. Muchas gracias por tu charla. Fue un placer tenerte aquí. Gracias. Sí, es un honor estar aquí, gracias.

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.
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.
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.
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.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
This Talk introduces the Epic Stack, a project starter and reference for modern web development. It emphasizes that the choice of tools is not as important as we think and that any tool can be fine. The Epic Stack aims to provide a limited set of services and common use cases, with a focus on adaptability and ease of swapping out tools. It incorporates technologies like Remix, React, Fly to I.O, Grafana, and Sentry. The Epic Web Dev offers free materials and workshops to gain a solid understanding of the Epic Stack.
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.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
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 Workshop
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.
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
Workshop
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.
Construir con SvelteKit y GraphQL
GraphQL Galaxy 2021GraphQL Galaxy 2021
140 min
Construir con SvelteKit y GraphQL
Top Content
Workshop
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
Workshop
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
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
Workshop
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