Flujos de base de datos y desarrollo de API con Prisma

Rate this content
Bookmark

Prisma es un ORM de código abierto para Node.js y TypeScript. En esta masterclass, aprenderás los flujos de trabajo fundamentales de Prisma para modelar datos, realizar migraciones de base de datos y consultar la base de datos para leer y escribir datos. También aprenderás cómo Prisma se integra en tu stack de aplicaciones, construyendo una API REST y una API GraphQL desde cero utilizando SQLite como base de datos.


Tabla de contenidos:
- Configuración de Prisma, modelado de datos y migraciones

- Explorando Prisma Client para consultar la base de datos

- Construyendo rutas de API REST con Express

- Construyendo una API GraphQL con Apollo Server

FAQ

Prisma es un ORM (Mapeador Objeto-Relacional) que permite trabajar con bases de datos relacionales desde un lenguaje de programación orientado a objetos. A diferencia de otros ORMs como SQLize o TypeORM, Prisma ofrece una experiencia de modelado de datos más intuitiva y sencilla, proporciona una API de cliente que facilita la realización de consultas con seguridad de tipos mejorada y permite una gestión eficiente de las migraciones de base de datos.

No necesitas conocimientos previos sobre SQL, TypeScript o cualquier otra tecnología específica para participar en el taller. Se empezará desde cero, introduciendo todos los conceptos relevantes paso a paso.

Si tienes problemas para acceder a Notion, no te preocupes. Durante el taller, se guiará a todos a través del documento y, además, se ofrecerá exportar el documento como PDF para que todos los participantes puedan tener acceso al material del taller.

En el taller aprenderás a configurar Prisma con una base de datos SQLite, realizar modelado de datos y migraciones, utilizar Prisma Client para realizar consultas a la base de datos, y cómo integrar Prisma Client en rutas de una API REST y resolvers de una API GraphQL.

Prisma Migrate es una herramienta incluida en Prisma que facilita la gestión de migraciones de base de datos. Permite llevar un registro del historial de cambios en el esquema de la base de datos y aplicar estos cambios de manera controlada tanto en entornos de desarrollo como en producción.

Sí, a partir de las últimas versiones, Prisma Migrate soporta la realización de rollbacks. Esto permite manejar situaciones donde las migraciones no se ejecutan como se esperaba, proporcionando una forma de revertir a un estado anterior seguro.

Nikolas Burk
Nikolas Burk
98 min
14 Feb, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Bienvenido a la masterclass de Flujos de base de datos y desarrollo de API con Prisma. Prisma es un ORM que te permite trabajar con una base de datos relacional desde un lenguaje de programación orientado a objetos. La masterclass cubre temas como el modelado de datos, las migraciones, el uso de Prisma Client para consultar la base de datos y la implementación de APIs REST y GraphQL. También destaca los beneficios de Prisma, incluyendo su intuitivo lenguaje de modelado de datos, su cliente de base de datos seguro en cuanto a tipos y su herramienta de migración. La masterclass proporciona tareas prácticas y orientación para principiantes para comenzar con Prisma.

1. Introducción al taller de Prisma

Short description:

Bienvenido al taller de Flujos de Base de Datos y Desarrollo de API con Prisma. Hoy, te presentaré Prisma y cubriré los flujos de trabajo más importantes para construir una aplicación con Prisma. Comenzaremos configurando Prisma con una base de datos SQLite, luego aprenderemos sobre el modelado de datos, migraciones y cómo usar Prisma Client para consultar la base de datos. También exploraremos cómo implementar APIs REST y GraphQL utilizando Prisma Client. No se requiere conocimiento previo, ya que proporcionaré los recursos y la guía necesarios. Siéntete libre de hacer preguntas y seguir mientras explico cada lección antes de darte tiempo para trabajar en las tareas. Soy Nikolas, el anfitrión de este taller, y puedes contactarme en Twitter, GitHub, correo electrónico o en el Slack de Prisma. Este taller es gratuito para que lo uses y compartas con otros.

Bienvenido al taller de Flujos de Base de Datos y Desarrollo de API con Prisma. Estoy realmente emocionado de dar este taller hoy. De hecho, este tipo de talleres son la parte favorita de mi trabajo como defensor del desarrollador que trabaja en Prisma para trabajar con personas y mostrarles sus primeros pasos con Prisma. Y eso es exactamente lo que harás hoy. Así que no necesitas ningún tipo de conocimiento previo sobre SQL o TypeScript o cualquier otra cosa. Comenzaremos desde cero e introduciré todos los conceptos relevantes para que no necesites saber nada de antemano.

Una cosa que les pediría a todos ustedes que hagan es abrir este enlace que ahora también estoy dejando en el chat para que puedan ver también este documento de Notion que estoy usando aquí ahora mismo. Y solo por logística, tengo una segunda pantalla aquí a mi izquierda donde estoy monitoreando el chat. Así que perdónenme si no siempre estoy mirando directamente a todos ustedes. Solo estoy revisando lo que está sucediendo en el chat y si las cosas no funcionan o si tienen una pregunta, siempre pueden dejarla en el chat o porque como ya mencioné, hacemos una llamada regular de Zoom aquí. También pueden desactivar el silencio y hacer una pregunta. Así que eso es definitivamente posible aquí también. Un problema es que Notion SO no funciona para encriptar. En realidad, no tengo otra fuente. No he tenido problemas hasta ahora con Notion, pero tampoco es demasiado importante si no puedes abrirlo tú mismo porque voy a guiar a todos a través del documento. Y lo que puedo hacer es exportarlo como PDF. Puedo hacer eso más tarde cuando comiences a trabajar en tu primera tarea y luego puedo enviarte el documento en formato PDF. Así que deberíamos poder resolver eso. Muy bien. Así que bienvenidos de nuevo, Flujos de Base de Datos y Desarrollo de API con Prisma. Entonces, lo que vas a aprender hoy son básicamente los flujos de trabajo más importantes que debes conocer cuando quieres construir una aplicación con Prisma. Y explicaré un poco más adelante qué es exactamente Prisma y qué hace. Pero primero quiero darte una visión general de lo que vamos a cubrir en este taller. Así que primero comenzaremos configurando Prisma con una base de datos SQLite. Aprenderás sobre el modelado de datos con Prisma y cómo realizar migraciones de base de datos. Luego aprenderás sobre Prisma Client, un generador de consultas con tipos que se puede usar para consultar tu base de datos. Y explorarás varias consultas allí desde operaciones CRUD básicas hasta consultas de relaciones y filtros y paginación. Y luego aprenderás cómo puedes usar Prisma Client para implementar las rutas de una API REST y luego también los resolvers de una API GraphQL. Y no es necesario que sepas cómo se ve una API REST o cómo se ve una API GraphQL. He preparado un poco el esqueleto de los proyectos con los que vas a trabajar. Así que si no has escuchado hablar de qué es un resolver de GraphQL por ejemplo, eso no es un problema en absoluto para este taller. Ahem, este es el programa de alto nivel. De hecho, me di cuenta de que todo comienza una hora antes. Así que debería comenzar a las cuatro y luego agregar una hora cada vez. ¿Cómo es una lección? He preparado estas cuatro lecciones que se corresponden con las diferentes cosas que queremos hacer en el taller. Así que configurar Prisma, modelado de datos y migraciones, explorar Prisma Client, API REST y API GraphQL. Son las lecciones. Y cada lección se ve de la siguiente manera que al principio voy a dar una explicación de la lección. Así que por ejemplo, para la primera aquí, hago clic en ella y luego voy a explicar qué se supone que debes hacer en esa lección en particular. E incluso te mostraré aquí con mi terminal, con mi VS code, un poco de la tarea en la que vas a trabajar. Y después de haberte mostrado tal vez tres o cuatro tareas por lección, tendrás tiempo para trabajar en las tareas de esa lección por ti mismo. Y lo que realmente quiero enfatizar para todos ustedes aquí para aprovechar al máximo este taller es que no comiencen a codificar cuando todavía soy yo quien está dando la explicación. Así que creo que es mejor si cuando te muestro cómo va a ser una lección, cuando explico las tareas individuales solo prestes atención y plantees cualquier tipo de preguntas que se te ocurran, pero realmente concéntrate en las cosas que hago, en lo que digo, e intenta entender eso. Y después de eso, tendrás mucho tiempo para terminar estas tareas por ti mismo. Así que sé un poco paciente cuando explique cada tarea y cada lección y luego aprovecharás al máximo el taller para ti mismo.

Mi nombre es Nikolas, soy el anfitrión de este taller. Realmente me gusta educar a otros desarrolladores y como defensor del desarrollador de Prisma, ese es básicamente mi trabajo principal. Y puedes seguirme en Twitter, en GitHub, puedes enviarme un correo electrónico o también puedes encontrarme en el Slack oficial de Prisma. Una nota final antes de sumergirnos en los temas es que este taller, este documento de Notion es completamente gratuito para que lo uses si quieres dar este taller por ti mismo en algún momento. Así que si sientes que lo que has aprendido en este taller hoy es realmente valioso y te gustaría compartirlo tal vez con tus colegas o amigos y como algunos de ellos están dispuestos a pasar unas horas contigo en esto puedes reutilizar todos estos materiales que he reunido aquí y usarlos cuando estés dando este taller tú mismo.

2. Introducción a Prisma

Short description:

Antes de comenzar con las lecciones, permíteme darte una visión general de qué es Prisma. Visitaremos el sitio web de Prisma y exploraremos la página de inicio juntos. Siéntete libre de hacer preguntas y unirte a la conversación sobre bases de datos y mapeadores objeto-relacional.

Muy bien, creo que eso es todo con la visión general de la logística. Muy bien, antes de comenzar con las lecciones reales me gustaría dar rápidamente una visión general de qué es Prisma en realidad. Y la forma en que quiero hacerlo es simplemente visitando el sitio web de Prisma. y darles a todos un recorrido rápido por nuestra página de inicio porque creo que eso probablemente sea más instructivo aquí. Y si tienen alguna pregunta en el camino también siéntanse libres de activar el sonido y participar, quiero que esto sea lo más interactivo posible. Y si queremos tener una conversación aquí sobre bases de datos y mapeadores objeto-relacional eso está totalmente bien para mí también. Así que si alguien aquí tiene opiniones fuertes sobre este tema, siéntanse libres de unirse a mí aquí.

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í.
Despídete de tus esquemas de API con tRPC
React Day Berlin 2022React Day Berlin 2022
29 min
Despídete de tus esquemas de API con tRPC
¿Sabías que podemos reemplazar los esquemas de API con una biblioteca liviana y segura? Con tRPC, puedes reemplazar fácilmente GraphQL o REST con formas inferidas sin esquemas ni generación de código. En esta charla, entenderemos los beneficios de tRPC y cómo aplicarlo en una aplicación de NextJs. Si quieres reducir la complejidad de tu proyecto, no te puedes perder esta charla.
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.