Construye y Despliega un Backend con Fastify y Platformatic

Rate this content
Bookmark

Platformatic te permite desarrollar rápidamente APIs GraphQL y REST con un esfuerzo mínimo. La mejor parte es que también te permite aprovechar todo el potencial de Node.js y Fastify cuando lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y complementos adicionales. En el masterclass, cubriremos tanto nuestros módulos de código abierto como nuestra oferta en la nube:

- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).

- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/).


En este masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la nube de Platformatic.


FAQ

Para comenzar con PlatformaticDB, debes clonar el repositorio proporcionado en las diapositivas y seguir los pasos indicados para configurar tu aplicación.

PlatformaticDB es una herramienta que permite crear una API abierta y un esquema gráfico a partir de tu base de datos sin necesidad de escribir código. Solo necesitas Node.js para personalizarlo.

Para verificar que estás ejecutando la versión correcta de Node.js, puedes abrir tu terminal y ejecutar el comando 'node -v'. Debes tener la versión 18.18.0 o superior.

Las migraciones en PlatformaticDB son ajustes en la estructura de la base de datos que puedes gestionar y aplicar a través del sistema. Los tipos generados son interfaces automatizadas para cada tabla de tu base de datos, facilitando así la interacción y el autocompletado en el desarrollo.

Puedes añadir una nueva película ejecutando una petición POST con los detalles de la película, como el título, mediante la herramienta GraphiQL o la API abierta proporcionada por PlatformaticDB.

Para revertir una migración en PlatformaticDB, puedes utilizar comandos específicos en la terminal que te permiten deshacer cambios aplicados anteriormente sobre la estructura de la base de datos.

Sí, PlatformaticDB soporta suscripciones en tiempo real, permitiendo que los clientes reciban actualizaciones automáticas cuando se modifican los datos en la base.

Las variables de entorno en PlatformaticDB se gestionan a través de archivos como '.env' y '.env.sample', permitiendo configurar aspectos cruciales sin comprometer la seguridad al exponer datos sensibles.

Matteo Collina
Matteo Collina
104 min
07 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Bienvenido al masterclass de Platformatic donde puedes crear una API abierta y un esquema gráfico desde tu base de datos sin programar. El generador crea archivos de configuración y tipos para la representación de la base de datos. GraphiQL te permite consultar la base de datos y ejecutar suscripciones para actualizaciones en tiempo real. El masterclass cubre la creación de relaciones, agregar likes a entidades e implementar lógica de negocio personalizada. El backend se puede desplegar en la nube de Platformatic y cuenta con soporte para autenticación de API y métricas de monitoreo. El masterclass también presenta los Espacios de Trabajo Dinámicos, los beneficios de SQLite y Platformatic Runtime para la composición de servicios.

1. Introducción al Masterclass de Platformatic

Short description:

Bienvenidos al masterclass de platformatic. Hoy tenemos un grupo pequeño, así que siéntanse libres de hacer preguntas. Las diapositivas y el material están disponibles en platformatic.dev.dbungall.com. PlatformaticDB es una herramienta que te permite crear una API abierta y un esquema gráfico a partir de tu base de datos sin necesidad de programar. Asegúrate de tener instalado node.js versión 18.18.0 o superior. Para comenzar, clona el repositorio o sigue las diapositivas. El masterclass es incremental y construiremos una aplicación para almacenar y dar like a películas. Ejecuta el comando 'create platformatic' para comenzar.

Hola a todos. Bienvenidos a este interesante masterclass sobre platformatic. Aquí vamos. Hoy tenemos un grupo pequeño. Así que les pido amablemente, si es posible, que enciendan la cámara, de lo contrario estaré hablando con la pared. Y realmente no quiero hablar con la pared durante tres horas o dos, o lo que sea. Hablar con la pared no es agradable. Gracias Jaroslav, Gracias Yusem, pero está iniciando y gracias Gianmarco. Hola. Hola a todos. Parece que hoy tenemos un grupo pequeño, así que días felices. Y pueden hacer las cosas paso a paso, por lo que no hay ningún problema en hacer esto. Tal vez algunas personas más se unan en unos momentos, pero veremos. Bien, siéntanse libres de hacerme preguntas, interrumpirme en cualquier momento, con suerte si lo terminamos antes de eso. Lo intentaremos, ¿de acuerdo? ¡Y eso es todo! ¿De acuerdo? Primero que nada, pueden encontrar estas URL, estas diapositivas en esta URL. Lo verán aquí, platformatic.dev.dbungall.com. Así que pueden copiar esto y pegarlo. Y también lo estoy pegando en el chat, así que aquí lo tienen. Y pueden revisarlo allí. Todo el material es público, así que pueden revisarlo.

Entonces, ¿qué es PlatformaticDB? Bueno, PlatformaticDB es la primera herramienta que creamos como parte de platformatic. Es una herramienta que te permite crear tanto una API abierta como un esquema gráfico a partir de tu base de datos sin tener que escribir ningún código. Y solo necesitas Node.js para personalizarlo y demás. Así que, sí, vamos a entrar en ello. Lo primero, por favor verifica que estás ejecutando Node.js versión 18.18.0 o superior. ¿Cómo lo haces? Puedes ir, podemos volver a nuestra terminal y espera un segundo, sí, cierra. Y podemos volver a nuestra terminal y podemos hacer node-diminusv y deberías obtener ese valor, algo así. Por favor avísame si tienes algún problema. Entonces, ¿qué hacemos para comenzar? Puedes clonar este repositorio. Ahora, si estás siguiendo las diapositivas, puedes hacer clic en este bonito botón aquí y puedes volver a tu ruta y simplemente pasar este tema y ejecutar el comando. Ejecuta el comando. Estas cosas contienen tanto los pasos. Contienen tanto los pasos como las diapositivas. Así que si abrimos esto puedes ver que tenemos estas diapositivas que son las que acabamos de mencionar y esas también son los pasos necesarios para configurar nuestra aplicación. ¿Tiene sentido? ¿Algún problema con usar Visual Studio Code? Yo tengo muchos. Yo uso Vim. Nunca lo he cerrado, así que lo siento. Sigue siendo la misma instancia. El masterclass es incremental. Así que cada paso que encuentres verás que tienes 0-1, 0-2, 0-3, y así sucesivamente. Cada uno de esos pasos es en realidad sencillo y se basa en el anterior. Así que puedes saltar pasos si quieres. Muy importante. Si no necesitas hacer nada, simplemente puedes hacer algunas cosas. Lo que vamos a construir será una pequeña aplicación que te permitirá hacer algunos tipos de APIs. Lo siento, una aplicación que te permitirá almacenar tus películas y luego darles like. Muy sencillo. Lo primero, copiamos estos fragmentos aquí y ejecutamos create platformatic. Entonces, ¿cómo lo hacemos? Bueno podemos ejecutar este código, podemos cd

2. Generador de Platformatic y Archivos Generados

Short description:

El generador crea un archivo de configuración platformatic db.json con autocompletado. También genera un archivo de complemento y tipos para la representación de la base de datos. Estos tipos proporcionan autocompletado y se cargan a través de un archivo global.tls. Al ejecutar el comando 'Cd movie quotes apps mpm start' se genera una documentación de API abierta y una interfaz gráfica. Podemos interactuar con la API utilizando varios métodos HTTP y consultar la base de datos utilizando GraphiQL. Las variables de entorno se almacenan en el archivo .env.sample, que debe ser confirmado en lugar del archivo .env.

y podemos ejecutar create platformatic. Ten en cuenta que esto dice npx create platformatic latest en latest lo que también podrías hacer es, hacer npm create space platformatic en latest. Las dos cosas son idénticas. Bien, y luego hace algunas preguntas y aquí hay algunas de las respuestas que vamos a hacer. Estamos eligiendo DB, lo estamos creando en esta carpeta. Queremos crear una migración predeterminada, crear un complemento tal vez. Sí, y no sabes TypeScript port y queremos ejecutar npm install. Luego queremos aplicar las migraciones predeterminadas y también generar los tipos. Vamos. Y omitimos las GitHub actions, no vamos a crear un repositorio para esto. De acuerdo.

¿Pudiste ejecutar el generador? Sí, pude. Solo quería preguntar qué son las migraciones, ¿qué son estos tipos generados si no estás usando TypeScript? Oh, sí. Te lo mostraré en un momento. De acuerdo. Permíteme mostrarte. Entonces, en primer lugar, qué archivos generó para nosotros. Nos generó un platformatic db.json. Este es nuestro archivo de configuración. Ten en cuenta que nuestro archivo de configuración es, lo siento, es, ves que tiene autocompletado completo. Por lo tanto, podrás completar los valores con Visual Studio Code 2 utilizando el mismo servidor de lenguaje. Utiliza variables de entorno para completar automáticamente las cosas. ¿Qué son los tipos? Entonces, aquí puedes ver que tiene un archivo de complemento, que es esencialmente estos, que es un complemento de Fastify. Hablaremos de eso en un momento. Los tipos luego se pueden utilizar para la representación de nuestra base de datos, de hecho incluye todas las propiedades. Por ejemplo, puedes ver que aquí tienes una película que tiene un id en el título, que es el contenido de la migración predeterminada. Por lo tanto, crea automáticamente para cada tabla, crea automáticamente una interfaz para cada una de nuestras tablas para que puedas ahorrar algo de tiempo. ¿Tiene sentido? Sí, sí, gracias. Y todos esos se cargan a través de este archivo global.tls que luego se carga aquí como parte del complemento. Entonces puedes usar esos tipos en este archivo de JavaScript y hablaremos de eso en un momento. Básicamente están ahí para proporcionar autocompletado. ¿Te gusta el autocompletado? ¿A quién no le gusta el autocompletado? Así que comencemos la cosa. ¿Qué podemos hacer? Cd movie quotes apps mpm start. ¿Qué nos ha generado esto? Nos ha generado una documentación de API abierta y gráfica. Podemos abrir esos dos enlaces. Echando un vistazo al primero, puedes ver que tiene get, post, put y todas las cosas que esperaríamos. Estas son básicamente cosas normales, las cosas normales que puedes imaginar. Podemos ejecutar una solicitud Slash y verás que es una matriz vacía. Potencialmente podríamos hacer post. ¿Dónde está? Post. Postea ahí una película, como por ejemplo Harry Potter. Y la ha almacenado con el ID 1. Y luego si volvemos arriba y ejecutamos la consulta nuevamente, verás que obtuvimos Harry Potter. Luego podríamos hacer lo mismo usando GraphiQL. Por ejemplo, podrías hacer una consulta como películas y título, y funciona igual. Oye, estamos en esta URL en este momento. Y puedes seguir las diapositivas antes de eso. Ten en cuenta que aquí tenemos, tenemos las variables de entorno, ¿de acuerdo? ¿Dónde rellena platformatic esas variables de entorno? Tenemos dos archivos aquí. Uno es .env, otro es .env.sample. No confirmes tu archivo .env pero sí confirma tu archivo .env.sample. ¿Por qué necesitas confirmar ese? Porque esto suele ser información personal.

QnA

Watch more workshops on 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
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
Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio

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.
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
¿Sabes qué está pasando realmente en tu carpeta node_modules? Los ataques a la cadena de suministro de software han explotado en los últimos 12 meses y solo están acelerándose en 2022 y más allá. Profundizaremos en ejemplos de recientes ataques a la cadena de suministro y qué pasos concretos puedes tomar para proteger a tu equipo de esta amenaza emergente.
Puedes consultar las diapositivas de la charla de Feross aquí.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
Puedes revisar las diapositivas de la charla de James aquí.
ESM Loaders: Mejorando la carga de módulos en Node.js
JSNation 2023JSNation 2023
22 min
ESM Loaders: Mejorando la carga de módulos en Node.js
El soporte nativo de ESM para Node.js fue una oportunidad para el proyecto de Node.js de lanzar soporte oficial para mejorar la experiencia de carga de módulos, permitiendo casos de uso como la transpilación sobre la marcha, la sustitución de módulos, el soporte para cargar módulos desde HTTP y la monitorización.
Aunque CommonJS tiene soporte para todo esto, nunca fue oficialmente compatible y se hacía mediante hackeo del código de ejecución de Node.js. ESM ha solucionado todo esto. Analizaremos la arquitectura de la carga de ESM en Node.js y discutiremos la API del cargador que lo admite. También veremos características avanzadas como la concatenación de cargadores y la ejecución fuera de hilo.
Diagnostics de Node.js listos para usar
Node Congress 2022Node Congress 2022
34 min
Diagnostics de Node.js listos para usar
En los primeros años de Node.js, los diagnósticos y la depuración eran puntos problemáticos considerables. Las versiones modernas de Node han mejorado considerablemente en estas áreas. Características como seguimiento de pila asíncrono, capturas de montón y perfilado de CPU ya no requieren módulos de terceros o modificaciones en el código fuente de la aplicación. Esta charla explora las diversas características de diagnóstico que se han incorporado recientemente a Node.
Puedes consultar las diapositivas de la charla de Colin aquí.