Evaluando GraphQL para Configurar una Malla de Datos de Grado Empresarial

Rate this content
Bookmark

Presentaré el concepto de una malla de datos y por qué cada vez más personas se están inclinando hacia ella como solución a sus problemas de modernización de datos (tanto en línea como analíticos) y aplicaciones. Hablaré sobre los requisitos clave en torno a 1) propiedad y arquitectura de datos descentralizadas orientadas al dominio, 2) datos como producto, 3) infraestructura de datos de autoservicio como plataforma y 4) gobernanza computacional federada (ref). Y luego hablaré sobre cómo GraphQL abre una oportunidad para sentar las bases de una malla de datos y las mejores prácticas en la construcción, operación y mantenimiento de una malla de datos de grado empresarial.

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

FAQ

Hasura es un proyecto de infraestructura de código abierto que permite crear fácilmente una API de GraphQL sobre fuentes de datos heterogéneas, facilitando así el acceso y la gestión de datos desde múltiples tipos de fuentes.

GraphQL representa eficazmente un gráfico semántico de modelos de datos interconectados, facilitando la integración y el manejo de datos de diversas fuentes en una sola API, lo que mejora la eficiencia y coherencia del acceso a los datos.

GraphQL garantiza un alto rendimiento y seguridad en las API de datos al permitir consultas precisas y limitadas, reduciendo la sobrecarga de datos y mejorando la eficiencia y protección de la información.

Una buena API de datos debe representar adecuadamente modelos de dominio y su interconexión, ofrecer tipos de interacción como consultas y actualizaciones en tiempo real, y asegurar un diseño que soporte eficientemente la autorización y el acceso seguro a los datos.

GraphQL facilita la transmisión en tiempo real de datos a través de sus primitivas modernas, lo que es útil para manejar datos que están frecuentemente en movimiento, permitiendo una integración eficaz y oportuna en aplicaciones que dependen de la actualidad de la información.

En GraphQL, se modelan primero los tipos de datos (modelos de lectura) que pueden incluir relaciones semánticas dentro de un mismo dominio o entre varios. Estos tipos se traducen luego en esquemas que facilitan la creación de consultas y mutaciones eficientes y coherentes.

Las suscripciones en GraphQL son utilizadas para mantener a los consumidores informados sobre los últimos cambios en los datos en tiempo real, adecuadas tanto para datos que cambian frecuentemente como para grandes volúmenes de datos que necesitan ser transmitidos de manera continua.

Tanmai Gopal
Tanmai Gopal
24 min
09 Dec, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla explora los beneficios de usar APIs de GraphQL para datos, incluyendo la representación de modelos de dominio, abordando las herramientas y la infraestructura de la API, y soportando datos interconectados. Se discute la asignación de modelos, APIs de lectura, filtrado, ordenamiento y agregación de datos, así como mutaciones para invocar lógica. La charla también destaca la importancia de estandarizar la infraestructura y aprovechar la asignación automática de modelos y la autorización de GraphQL. Además, se menciona el uso de bases de datos especializadas, la comparación entre GraphQL y gRPC para APIs de datos, y la experiencia del ponente trabajando en varias partes del stack.

1. Introducción a las API de GraphQL para datos

Short description:

Hola a todos, en esta charla discutiré las API de GraphQL para datos. Exploraremos los desafíos de los datos fragmentados y la necesidad de una API integral. GraphQL ofrece beneficios al representar modelos de dominio, proporcionar diversas API y abordar las herramientas y la infraestructura de la API. Permite abordar preocupaciones centralizadas y admite datos interconectados. Al adoptar un enfoque de estilo CQR, podemos diseñar API con modelos de lectura y comandos. Al llevar estas ideas a GraphQL, podemos priorizar los modelos de lectura y manejar datos dentro del mismo dominio o en diferentes dominios.

Hola a todos, voy a hablarles un poco sobre las API de GraphQL para datos. Mi nombre es Tanya. Soy la CEO y cofundadora de Hasura. Hasura es un proyecto de infraestructura de código abierto que te permite crear fácilmente una API de GraphQL sobre fuentes de datos heterogéneas. Gran parte del contenido de esta charla está inspirado en el trabajo que hacemos en Hasura y en los aprendizajes de nuestros usuarios, especialmente en empresas, a medida que movilizan sus datos y comienzan a utilizar GraphQL cada vez más para mejorar la experiencia en torno a sus API de datos.

Entonces, el contexto general de esta charla es que los datos están cada vez más fragmentados y dispersos en múltiples tipos de fuentes. Y necesitamos una API para comenzar a acceder a esos datos. Puede tener datos transaccionales o datos dentro de un servicio SaaS, o datos más analíticos. Y dentro del mismo contexto de la aplicación o del mismo contexto del usuario, todos los datos que están divididos en estos diferentes tipos de fuentes están cada vez más conectados y relevantes para el usuario final al mismo tiempo. Y si pensamos en una aplicación de comercio electrónico simple, no solo realizas transacciones e interactúas con datos, sino que también buscas en catálogos. También estás viendo información agregada y analizada, y estas son cosas que están interconectadas. Y desde el punto de vista de la API, es posible que necesites que todo esto se integre en una sola experiencia de API. Cuando pensamos en esta API, es un poco el cuello de botella porque alguien necesita construir esta API. Alguien necesita comunicarse con múltiples tipos de fuentes, y debes asegurarte de que la API se mantenga continuamente actualizada con la evolución subyacente que está ocurriendo. Y, por supuesto, deseas una experiencia de API que garantice cierto nivel de rendimiento y seguridad, ¿verdad?

Entonces, en este contexto de tener una API de datos donde los datos se están fragmentando, las cosas que queremos, las propiedades que queremos de una API de datos, son las mismas propiedades que queremos para cualquier motor de API. Pero específicamente, lo que queremos asegurarnos es que podamos representar nuestros modelos de dominio, su evolución, su interconexión, ¿verdad? Queremos asegurarnos de tener ciertos tipos de API que, nuevamente, son habituales en las API de datos, ya sea consultas o información en tiempo real. Ciertas formas de interactuar con esos datos, métodos en esos datos, y ciertos NFR que son importantes para garantizar que esta API de datos esté lista y sea utilizable para producción. Lo más importante es que queremos asegurarnos de que las herramientas de la API, la infraestructura para nuestros consumidores de API, sean de primera categoría y sigan evolucionando. Si podemos resolver estos problemas, bueno, esencialmente tenemos una buena API de datos que será fácil de mantener y evolucionar, ¿verdad?

Entonces, si piensas que hay muchos temas aquí, nos centraremos principalmente en el aspecto de modelado de IA y datos de la API con el propósito de esta charla. Veamos cómo GraphQL puede agregar valor aquí cuando pensamos en la API de datos, ¿verdad? Nuestros datos están interconectados, por lo que GraphQL representa esa realidad de un gráfico semántico de modelos interconectados mucho mejor que si pensáramos en recursos aislados que evolucionan de forma independiente, ¿verdad? GraphQL es nativo de JSON, lo cual es bueno desde el punto de vista de consumo de la API, y nos ofrece la oportunidad de centralizar parte de esa infraestructura en torno a la conversión JSON cuando interactuamos con datos. GraphQL también tiene primitivas modernas en torno a la transmisión en tiempo real, lo cual es útil porque los datos están empezando a estar menos en reposo y una buena cantidad de nuestros datos también están en movimiento en tiempo real, ¿verdad? Y, por supuesto, GraphQL siempre tiene un esquema, un artefacto incorporado, lo que significa que muchos de nuestros desafíos en torno a la infraestructura de la API, las herramientas, la documentación, la incorporación, se abordan automáticamente, ¿verdad? No está al 100%, pero una gran parte de lo que tendríamos que hacer manualmente si no estuviéramos utilizando GraphQL se aborda automáticamente, ¿verdad? Ofrece ciertos beneficios en lo que queremos de nuestra API de datos y ofrece ciertas oportunidades para centralizar algunas de esas preocupaciones y la forma en que pensamos en nuestros datos que se dividen en una malla de fuentes. Entonces, típicamente, cuando diseñamos una API, la forma en que la pensaríamos es que tendríamos modelos, tendríamos getters o accesores de esos modelos, ¿verdad? Por ejemplo, si tuviera artistas y álbumes en la base de datos de música, tendría un método get en un artista, ¿verdad? O donde podría especificar un ID como parámetro, ¿verdad? Tendría una lista de artistas que obtuve con un parámetro de paginación, ¿verdad? Y luego tendría ciertos comandos o métodos que invocaría que afectan esos modelos, ¿verdad? Y si lo pensáramos más como una cosa de estilo CRUD, entonces tendríamos un modelo. El mismo modelo es un modelo de lectura y un modelo de escritura. Podríamos publicar, poner, parchear, eliminar un modelo o podríamos obtener ese modelo, ¿verdad? Pero si lo estás pensando más desde un punto de vista de CQRS, entonces pensaríamos más en que tenemos comandos que estamos invocando y luego invocamos comandos. Estos pueden ser crear usuario, crear artista, procesar artista, agregar álbum a artista, ¿verdad? O agregar etiqueta a artista, o lo que sea. Y esos serían comandos que invocamos y nuestros modelos serían modelos de lectura en los que esperaríamos que nuestros comandos afecten. Y luego leeríamos datos de esos modelos, ¿verdad? Y eso podría ser una idea ligeramente diferente. Ahora, cuando llevamos estas ideas a GraphQL, la forma en que me gusta pensar en esto es más bien llevar ese tipo de pensamiento de estilo CQR a nuestro diseño de API. Entonces, pensamos primero en los modelos de lectura. Tenemos modelos de lectura. Los modelos de lectura pueden estar dentro de la misma fuente o dentro del mismo dominio de datos, o divididos entre dominios de datos.

2. Mapeo de modelos y API de lectura

Short description:

Y estos tendrían conexiones, ¿verdad? Aún no hemos definido los métodos y eso es a lo que vamos a llegar a continuación. La primera categoría de métodos que podemos tener son las consultas, ¿verdad? Y debido a que es una API de datos, habrá algunas expectativas y convenciones comunes que podemos establecer. Y ahora, cuando pensamos en el lado derecho de nuestra API, especialmente cuando pensamos en las mutaciones gráficas, entonces la forma en que lo pensamos es que invocamos un comando. Entonces, en esta capa, en la capa de la API de GraphQL, podemos comenzar a centralizar parte de la infraestructura en la forma en que mapeamos estos modelos, los convertimos en tipos, en la forma en que creamos API de lectura comunes en estos dominios y en la forma en que invocamos ciertos comandos. Entonces, si podemos centralizar la infraestructura aquí, podemos aprovechar todos los beneficios que las personas obtienen de una API de GraphQL, podemos centralizar gran parte del esfuerzo que estamos poniendo en la construcción de la API. A continuación, nos adentraremos un poco más en ese mapeo de modelos en las API, la API de lectura y la API de escritura, solo para ver cómo podría verse eso. Lo segundo que queremos hacer para asegurarnos de representar es asegurarnos de poder modelar las relaciones entre estos modelos que tenemos. Y debido a que finalmente será JSON, la forma en que la relación se mostrará en la API será, tal vez tenga un objeto anidado agregado, por lo que tiene muchos para ser un objeto anidado, o desea que sea una matriz anidada, ¿verdad? Incluso puede tener campos que sean en realidad una relación que proviene de un modelo diferente. Y cada uno de esos modelos también debe tener herramientas de autorización que determinen qué campos son accesibles y qué entidades de ese modelo son realmente legibles por un consumidor de API en particular. Entonces, eso es, estas tres piezas de trabajo, mapeo, relaciones y autorizaciones, políticas, ¿verdad? Esta es la información mínima que necesitamos para llevar un modelo desde nuestro dominio de datos, desde una de nuestras fuentes de datos, a la API. La segunda pieza es la lectura. Entonces, lo que queremos hacer es crear convenciones sobre cómo vamos a leer estos modelos, ¿verdad? Podemos crear convenciones sobre la paginación, el orden y el filtrado, ¿verdad? Queremos crear una convención sobre las agregaciones y luego queremos componerlas con una relación, queremos representar esas relaciones en nuestras consultas, ¿verdad? Entonces, queremos poder leer modelos a través de relaciones. También queremos asegurarnos de que nuestras consultas puedan representar agregaciones, ordenar o filtrar que puedan hacer referencia a objetos padre e hijo, ¿verdad? Echemos un vistazo rápido, como ejemplo, solo te mostraré cómo lo pensamos en Hasura y cómo se ve esa API de lectura, cómo se ve esa convención de lectura cuando lo pensamos en Hasura, la forma en que lo pensamos en Hasura, ¿verdad?

Estos tendrían relaciones semánticas dentro del dominio o entre dominios. Y esencialmente se convertirían en los tipos de nuestro esquema de GraphQL, ¿verdad? Aún no hemos definido los métodos y eso es a lo que vamos a llegar a continuación.

La primera categoría de métodos que podemos tener son las consultas, ¿verdad? Y debido a que es una API de data, habrá algunas expectativas y convenciones comunes que podemos establecer, ¿verdad? ¿Estamos obteniendo un solo elemento? ¿Un solo modelo? ¿Una lista de modelos, paginando a través de ellos, ordenándolos, filtrándolos? Las agregaciones son especialmente importantes para las API de data, ¿verdad? Entonces, podemos comenzar a crear una convención que diga, una vez que tenemos un modelo de lectura, estos son los métodos comunes que podemos tener para leer esos modelos, ¿verdad? Y eso aborda el lado de las consultas de nuestra API.

Y ahora, cuando pensamos en el lado derecho de nuestra API, especialmente cuando pensamos en las mutaciones gráficas, ¿verdad? Tal vez también algunas consultas, cuando pensamos en las mutaciones gráficas, entonces la forma en que lo pensamos es que invocamos un comando. El comando hará algo, pero eventualmente devolverá una referencia a un modelo de lectura o a una lista de modelos de lectura, ¿verdad? Y eso nos da una forma de pensar en el diseño del lado derecho de nuestra API, especialmente en las mutaciones gráficas. Aunque, como dije, algunos comandos también podrían ser comandos de consulta. Pero es la misma idea, solo que la estamos visualizando en el contexto de múltiples dominios, ¿verdad?

Podríamos tener múltiples dominios, cada dominio tiene modelos, comandos, ¿verdad? Y usamos eso para crear nuestra API de GraphQL, ¿verdad? Entonces, en esta capa, en la capa de la API de GraphQL, podemos comenzar a centralizar parte de la infraestructura en la forma en que mapeamos estos modelos, los convertimos en tipos, en la forma en que creamos API de lectura comunes en estos dominios y en la forma en que invocamos ciertos comandos. Entonces, si podemos centralizar la infraestructura aquí, ¿verdad?, podemos aprovechar todos los beneficios que las personas obtienen de una API de GraphQL, podemos centralizar gran parte del esfuerzo que estamos poniendo en la construcción de la API. Y podemos enfocarnos más dentro de cada uno de esos dominios, podemos enfocarnos en el modelado, podemos enfocarnos en la lógica real que podría ejecutarse y afectar esos modelos, ¿verdad? Entonces, lo que vamos a explorar a continuación es un poco más en ese mapeo de modelos en las API, la API de lectura y la API de escritura un poco, solo para ver cómo podría verse eso. ¿Correcto? Entonces, obtengamos los modelos, cuando pensamos en modelos, lo más importante es poder mapear lo que queremos en el modelo que queremos exponer, los modelos que tenemos dentro de nuestro dominio, ¿verdad? Entonces, si tienes un dominio de tipo database, ¿verdad?, tenemos modelos físicos, estos modelos de data podrían ser modelos físicos, podrían ser tablas, ¿verdad? O modelos lógicos, donde los datos exactos en la tabla en realidad no se correlacionan con el modelo que quieres tener en la API, ¿verdad? Entonces, podrías tener un modelo físico o un modelo lógico. Pero básicamente se representan en un modelo gráfico que deseas al final del día. Si no es una database, sino más bien una fuente, podrías tener un modelo que proviene de un servicio de API, ¿verdad? Entonces, la capa de mapeo que tenemos en nuestra infraestructura gráfica, en la configuración del marco de código, lo que sea, debería ayudar a resolver este problema de mapeo para traer ciertos modelos de una de una fuente de datos de un dominio de data de la manera más fácil posible. Lo segundo que queremos hacer para asegurarnos de representar, ¿verdad?, que queremos agregar configuración o código alrededor, es asegurarnos de poder modelar las relaciones entre estos modelos que tenemos, ¿verdad? Y debido a que finalmente será JSON, la forma en que la relación se mostrará en la API será, ya sabes, tal vez tenga un objeto anidado agregado, por lo que tienes muchos para ser un objeto anidado, o quieres que sea una matriz anidada, ¿verdad? Incluso puedes tener campos que en realidad son una relación que proviene de un modelo diferente. ¿Y cada uno de esos modelos también debe tener herramientas de autorización que determinen qué campos son accesibles, y qué entidades de ese modelo son realmente legibles por un consumidor de API en particular, ¿verdad? Entonces, eso es, estas tres piezas de trabajo, mapeo, relaciones y autorizaciones, políticas, ¿verdad? Esta es la información mínima que necesitamos para llevar un modelo desde nuestro dominio de data, ¿verdad?, desde una de nuestras fuentes de data, ¿verdad?, a la API, ¿verdad?, y en este punto ahora tenemos una buena forma de pensar en los tipos de nuestro esquema de GraphQL y la forma en que esos tipos se mostrarán, ¿verdad? No todos los tipos, algunos de los tipos, ¿verdad?, la forma en que eso se mostrará. Entonces, esa es la primera pieza de la API de data que hemos resuelto, ¿verdad?

Y si miras este ejemplo que tengo aquí donde tengo el tipo artistas, ¿verdad? Estoy viendo que mi modelo de GraphQL es id y name. En el modelo físico, podría ser nombre y apellido, mi modelo de API, mi modelo de GraphQL me gustaría que se llame, ese es mi modelo de lectura, ¿verdad? Y luego podría tener álbumes, ¿verdad?, del artista como una etiqueta, el artista está firmado en la etiqueta, la etiqueta podría tener su propia información, ¿verdad? Entonces, eso es un objeto anidado. El artista tiene varios álbumes, por lo que sería una matriz anidada. Entonces, álbumes y etiqueta serían modelos diferentes y tendrían relaciones con el modelo de álbumes y con el modelo de etiqueta, ¿verdad? Y aquí es donde he hecho el mapeo del propio modelo de artista. Entonces, estamos viendo la parte de mapeo, estamos viendo relaciones, ¿verdad? Y luego, por supuesto, tenemos reglas de autorización que determinan qué campos podemos acceder realmente. Entonces, así es como se mostrará en el esquema de la API, lo cual es bueno porque ahora podemos ver qué modelos interconectados tenemos, ¿verdad? La segunda pieza es la lectura. Entonces, lo que queremos hacer es crear convenciones sobre cómo vamos a leer estos modelos, ¿verdad? Entonces, podemos crear convenciones sobre la paginación, el orden y el filtrado, ¿verdad? Queremos crear una convención sobre las agregaciones y luego queremos componerlas con una relación, queremos representar esas relaciones en nuestras consultas, ¿verdad? Entonces, queremos poder leer modelos a través de relaciones. También queremos asegurarnos de que nuestras consultas puedan representar agregaciones, ordenar o filtrar que puedan hacer referencia a objetos padre e hijo, ¿verdad? Entonces, echemos un vistazo rápido, como ejemplo, solo te mostraré cómo lo pensamos en Hasura y cómo se ve esa API de lectura, cómo se ve esa convención de lectura cuando lo pensamos en Hasura, la forma en que lo pensamos en Hasura, ¿verdad?

Tengo aquí una aplicación de demostración que se está ejecutando en mi máquina, y me he conectado a una fuente de Postgres y a una fuente de SQL Server. Estos son mis dos dominios de data. Y tengo un modelo llamado artistas, que tiene ID y nombre, ¿verdad? Entonces, estamos viendo esa información aquí. Echemos un vistazo a cómo se ve la API. Entonces, tengo paginación, ¿verdad? Paginación basada en desplazamiento o paginación basada en cursor. Tenemos una forma de filtrar cosas.

QnA

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.
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.
Adoptando GraphQL en una Empresa
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
Adoptando GraphQL en una Empresa
Today's Talk is about adopting GraphQL in an enterprise. It discusses the challenges of using REST APIs and the benefits of GraphQL. The Talk explores different approaches to adopting GraphQL, including coexistence with REST APIs. It emphasizes the power of GraphQL and provides tips for successful adoption. Overall, the Talk highlights the advantages of GraphQL in terms of efficiency, collaboration, and control over APIs.
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL Galaxy 2022GraphQL Galaxy 2022
16 min
Deja paso a los resolvers: un nuevo enfoque para la ejecución de GraphQL
GraphQL has made a huge impact in the way we build client applications, websites, and mobile apps. Despite the dominance of resolvers, the GraphQL specification does not mandate their use. Introducing Graphast, a new project that compiles GraphQL operations into execution and output plans, providing advanced optimizations. In GraphFast, instead of resolvers, we have plan resolvers that deal with future data. Graphfast plan resolvers are short and efficient, supporting all features of modern GraphQL.

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
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 2022React Advanced 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