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.


This workshop has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

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

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.
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
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
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
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
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
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.
Diagnostics de Node.js listos para usar
Node Congress 2022Node Congress 2022
34 min
Diagnostics de Node.js listos para usar
This talk covers various techniques for getting diagnostics information out of Node.js, including debugging with environment variables, handling warnings and deprecations, tracing uncaught exceptions and process exit, using the v8 inspector and dev tools, and generating diagnostic reports. The speaker also mentions areas for improvement in Node.js diagnostics and provides resources for learning and contributing. Additionally, the responsibilities of the Technical Steering Committee in the TS community are discussed.