Menú

Curso Backend con NestJS: APIs REST, Seguridad, Docker y Bases de Datos del centro TrainingIT

Programa de Curso Backend con NestJS: APIs REST, Seguridad, Docker y Bases de Datos

Modalidad: A Distancia , Online
Precio: 375 €
Si vienes de Empresa, puedes bonificar hasta el 100% del curso con el crédito FUNDAE.

Descripción

Domina NestJS y construye aplicaciones backend seguras, escalables y listas para producción.

Esta es una formación integral para aprender a desarrollar aplicaciones backend profesionales de principio a fin. Desde la instalación inicial hasta el despliegue en producción con Docker, dominarás APIs REST robustas, autenticación segura con JWT, documentación de endpoints con Swagger y conexión con bases de datos populares como MySQL, Oracle y MongoDB. Además, aprenderás a crear microservicios, cron jobs, enviar correos con Nodemailer y aplicar principios de arquitectura moderna, todo con ejemplos prácticos y buenas prácticas orientadas al mundo real.

A quién va dirigido

El curso que te presentamos a continuación se ha destinado a todas las personas interesadas en desplegar aplicaciones con Docker en entornos productivos.

Objetivos

  1. Desarrollar APIs REST robustas y escalables con NestJS.
  2. Implementar autenticación segura con JWT y gestión de usuarios.
  3. Documentar endpoints con Swagger siguiendo estándares profesionales.
  4. Conectar aplicaciones con bases de datos como MySQL, Oracle y MongoDB.
  5. Dominar Docker para entornos de desarrollo y producción.

Temario

1.Preparación del entorno

1.1 Instalar Visual Studio Code

1.2 Instalar Node.js

1.3 Instalar Postman

1.4 Instalar Docker

1.5 Instalar Visual Studio Code Linux

1.6 Instalar Node.js Linux

1.7 Instalar Postman Linux

2.Instalación de NestJs

2.1 Instalación de @nestjs/cli

3. Configuración Postman

3.1 Explicando cómo funciona Postman

3.2 Creando un environment

3.3 Exportar e importar variables del entorno

4.REST API de una lista de nombres

4.1 Resultado esperado

4.2 ¿Qué es una REST API?

4.3 Creando nuestro proyecto

4.4 Creando nuestro módulo

4.5 Creando nuestro controlador

4.6 Creando nuestro servicio

4.7 Creando e inicializando nuestro array de nombres

4.8 Operación Create con los decoradores @Post y @Body

4.9 No insertar un nombre si ya existe

4.10 Operación Read con el decorador @Get

4.11 Mejorando la operación Read con el decorador @Query

4.12 Operación Update con los decoradores @Put y @Param

4.13 Operación Delete con los decoradores @Delete y @Param

4.14 Limpiando todos los nombres

4.15 Exportando los endpoints de Postman

5. Swagger

5.1 Resultado

5.2 Instalar swagger

5.3 ApiTags

5.4 ApiOperation

5.5 ApiParam

5.6 ApiQuery

5.7 ApiPost

5.8 Probando nuestra documentación completamente

6.Usuarios

6.1 Resultado esperado

6.2 Creando el proyecto

6.3 Creando nuestro módulo, controlador y servicio

6.4 Creando nuestro primer dto

6.5 Validando la entrada de parámetros

6.6 Global Pipe

6.7 Creando usuarios

6.8 Pipe parseDate

6.9 Obteniendo usuarios filtrados

6.10 Actualizando usuarios

6.11 Eliminando usuarios

6.12 Documentando nuestros endpoints

6.13 Documentando nuestro dto

7.Instalación MySQL

7.1 Descargar imagen MySQL

7.2 Instalar MySQL Workbench en Windows

7.3 Instalar MySQL Workbench en Linux

8.Conexion MySQL

8.1 Resultado esperado

8.2 Diferencia entre un entity y un dto

8.3 Reinicio de tablas

8.4 Creando un proyecto

8.5 Instalando TypeORM

8.6 ¡A tener en cuenta en el próximo video!

8.7 Configuración del ORM con ormconfig.json

8.8 Creando el módulo Product

8.9 Creando nuestro product-dto

8.10 Creando nuestro product.entity

8.11 Inyectando nuestro repositorio en productService

8.12 Creando un producto

8.13 Devolviendo un producto por su id

8.14 Mejorando la validación del producto al crearlo

8.15 Devolviendo todos los productos

8.16 Devolviendo todos los productos borrados

8.17 Actualizando productos

8.18 Borrado suave de productos

8.19 Recuperando productos borrados

8.20 Creando stock-dto

8.21 Actualizando el stock de un producto

8.22 Incrementando el stock de un producto

8.23 Decrementando el stock de un producto

8.24 Documentando los endpoints de product

8.25 ApiResponse

8.26 Documentando dto

8.27 Creando el módulo Client

8.28 Creando client-dto

8.29 Creando client.entity

8.30 Creando address-dto

8.31 Creando address.entity

8.32 Relación OneToOne con typeorm

8.33 Crear cliente

8.34 Validar si existe o no el cliente

8.35 Validar la dirección

8.36 Obtener todos los clientes

8.37 Obtener un cliente por su id

8.38 Actualizar un cliente

8.39 Validar email al actualizar

8.40 Validando la dirección al actualizar cuando no tiene id

8.41 Validando la dirección al actualizar cuando tiene id

8.42 Borrando la dirección desreferenciada

8.43 Eliminar un cliente

8.44 Creando el módulo Order

8.45 Creando order-dto

8.46 Creando order.entity

8.47 Relación ManyToOne/OneToMany

8.48 Relación ManyToMany

8.49 Completando order-dto

8.50 Importando el módulo Cliente y Producto

8.51 Creando órdenes

8.52 Obtener una orden por su id

8.53 Obtener órdenes pendientes

8.54 Obtener órdenes confirmadas

8.55 ¡A tener en cuenta antes del próximo video!

8.56 Filtrando órdenes confirmadas (parte 1)

8.57 Filtrando órdenes confirmadas (parte 2)

8.58 Confirmando órdenes

8.59 Obtener órdenes de un cliente

8.60 Documentar dto

8.61 Documentar endpoints de clientes (parte 1)

8.62 Documentar endpoints de clientes (parte 2)

8.63 Documentar endpoints de órdenes

9.Instalar Oracle

9.1 Descargar imagen docker

9.2 Instalar SQLDeveloper en Windows

10.Conexión Oracle

10.1 Crear un usuario en Oracle

10.2 Creando nuestro proyecto

10.3 ¡Atención antes del siguiente video!

10.4 Adaptando el anterior proyecto

10.5 Probando el funcionamiento con Postman

Test de Conocimientos I

11. Instalación de Mongo DB

11.1 Descargar imagen docker

11.2 Instalar MongoDB Compass en Windows

11.3 MongoDB en linux

11.4 Instalar MongoDB Compass en Linux

11.5 Seguridad MongoDB Linux

12. Conexion Mongo con mongoose

12.1 Resultado esperado

12.2 Creando nuestro proyecto

12.3 Instalando @nestjs/mongoose

12.4 Configuration

12.5 Creando nuestra configuración en ficheros env

12.6 Configurando nuestro entorno de desarrollo

12.7 Conectar con mongo usando los datos de la configuración

12.8 Creando el módulo Permissions

12.9 Creando permission-dto

12.10 Schema permission

12.11 Inyectando el servicio conexión de MongoDB en los permisos

12.12 Creando permissions

12.13 Obteniendo todos los permissions

12.14 Filtrando permissions por su nombre

12.15 Creando updated-permission-dto

12.16 Actualizando permissions

12.17 Borrando permissions

12.18 Documentando permissions

12.19 Creando el módulo Roles

12.20 Creando role-dto

12.21 Schema role

12.22 Inyectando el modelo de MongoDB en los roles

12.23 findPermissionByname

12.24 Creando roles

12.25 Obteniendo roles

12.26 Filtrando roles

12.27 Buscar roles por nombre

12.28 Actualizando roles

12.29 Añadiendo permissions al role

12.30 Borrando permissions al role

12.31 Borrando roles

12.32 Documentación de roles

12.33 Creando el módulo User

12.34 Creando user-dto

12.35 Schema User

12.36 Inyectando el modelo de MongoDB en los usuarios

12.37 Creando usuarios

12.38 Obtener un usuario por email

12.39 Obteniendo usuarios

12.40 Paginación de usuarios

12.41 Pipe greaterZero

12.42 Ordenación de usuarios

12.43 Obtener un usuario por usercode

12.44 Actualizando usuarios

12.45 Creando user-role-dto

12.46 Añadir un rol al usuario

12.47 Borrar un rol al usuario

12.48 Borrando usuarios

12.49 Obteniendo usuarios borrados

12.50 Obteniendo usuarios no borrados

12.51 Mejorando la parte de los GETs

12.52 Restaurando usuarios

12.53 Contar el número de usuarios con un rol

12.54 forwardRef

12.55 No borrar el rol si hay usuarios con ese rol

12.56 Documentación usuarios

13. Mongo Atlas

13.1 Creando una cuenta en Mongo Atlas

13.2 Preparando nuestro proyecto

13.3 Conectando Mongo Atlas con Mongo Compass

13.4 Adaptando nuestra conexión para Mongo Atlas

13.5 Probando nuestros endpoints

Test de Conocimientos II

14. Autenticación

14.1 Resultado esperado

14.2 Creando nuestro proyecto

14.3 Configuración

14.4 Conexión MongoDB

14.5 Creando el módulo de users

14.6 Creando user-dto

14.7 Schema User

14.8 Inyectando el modelo de usuario

14.9 Creando usuarios

14.10 Encriptando contraseñas

14.11 Obteniendo usuarios

14.12 Obteniendo un usuario por su email

14.13 Poblar usuarios

14.14 Creando auth module

14.15 Mejorando la configuración

14.16 Creando auth-credentials-dto

14.17 Passport

14.18 Importando JwtModule usando nuestro secretKey

14.19 Estrategia JWT

14.20 Validar Token

14.21 Validar credenciales

14.22 Login

14.23 jwt.io

14.24 Protegiendo los endpoints del módulo user

14.25 Devolviendo datos del usuario logueado

14.26 Documentando nuestros endpoints

14.27 Añadiendo autorización a swagger

15.Subir Archivos multimedia

15.1 Resultado esperado

15.2 Creando nuestro proyecto

15.3 Creando nuestro módulo

15.4 MulterModule

15.5 Subir un archivo

15.6 Subiendo un archivo con Postman

15.7 Subir varios archivos a la vez

15.8 Limitando el tamaño de los ficheros

15.9 Solo subir imágenes

15.10 Mejorando donde almacenar los archivos

15.11 Cambiar el nombre de los ficheros al subirlos

15.12 Descargar un archivo

15.13 Documentando nuestros endpoints

15.14 Subir archivos en Swagger

16.Cron

16.1 Resultado esperado

16.2 Creando nuestro proyecto

16.3 Creando módulo cron

16.4 Instalando @nestjs/schedule

16.5 Crontab guru

16.6 Creando crons

16.7 Desactivando un cron

16.8 Instalando @types/cron

16.9 Activando un cron

16.10 Devolver todos los nombres de los crons

16.11 Desactivando todos los crons a la vez

16.12 Activando todos los crons a la vez

16.13 Documentando nuestros endpoints

17.Logs

17.1 Resultado esperado

17.2 Creación del proyecto

17.3 Reutilizando el proyecto anterior

17.4 Instalar Winston

17.5 Creando nuestro módulo Logger de forma global

17.6 Creando nuestro servicio

17.7 Formato de texto

17.8 Formato de fecha

17.9 Creando nuestros logger

17.10 Arrancando nuestro logger

17.11 Usando LoggerService

17.12 Instalar Winston rotate

17.13 Rotar logs por días

17.14 Usar console.log como logger

18.Emails

18.1 Resultado esperado

18.2 Creando nuestro proyecto

18.3 Creando nuestro módulo

18.4 Creando MessageDto

18.5 Validando el interior de un array

18.6 EmailConfig

18.7 Módulo dinámico

18.8 Instalar nodemailer

18.9 Creando un endpoint para enviar un email

18.10 Configurando nuestro módulo para enviar correos con Gmail

18.11 Configurar Gmail

18.12 Enviar correos con nodemailer

18.13 Testeo de envío de email

18.14 Configurando nuestro módulo para enviar correos con Outlook

18.15 Documentación

19.Microservicios

19.1 Resultado esperado

19.2 ¿Qué es un microservicio?

19.3 Creando nuestros proyectos

19.4 Instalar las dependencias necesarias

19.5 Creando los módulos necesarios en el backend 1

19.6 Creando los módulos necesarios en el backend 2

19.7 Creando nuestros microservicios

19.8 Creando la conexión de nuestros microservices

19.9 Creando un endpoint para mandar un mensaje

19.10 Patterns

19.11 MessagePattern (backend 1 al backend 2)

19.12 MessagePattern (backend 2 al backend 1)

19.13 Event (backend 2 al backend 1)

19.14 Event (backend 1 al backend 2)

19.15 Controlar el error en caso de que no haya conexión

20. MQTT Explorer

20.1 Instalar MQTT Explorer en Windows

20.2 Instalar MQTT Explorer en Linux

21. MQTT

21.1 Resultado esperado

21.2 ¿Qué es MQTT?

21.3 Creando nuestro proyecto

21.4 Creando módulo necesarios

21.5 Creando la conexión con MQTT (parte 1)

21.6 Creando la conexión con MQTT (parte 2)

21.7 Publicando un topic

21.8 Mejorando la visualización de datos

21.9 Creando mqtt-data-dto

21.10 Publicar un topic desde un endpoint

21.11 Recibir datos de un topic

21.12 Controlar errores

22.Despliegue

22.1 Compilando nuestra aplicación

22.2 Copiar ficheros al compilar con copyfiles

22.3 Instalando dependencias

22.4 Ejecutando nuestra aplicación compilada

22.5 Instalando pm2 y ejecutando nuestra aplicación

Test final de curso

Titulación obtenida

Finalizada la formación obtendrás un certificado de aprovechamiento.

Requisitos

  • Conocimientos básicos de TypeScript y JavaScript.
  • Familiaridad con Node.js y su ecosistema.
  • Experiencia mínima en desarrollo de aplicaciones o APIs.

Información Adicional

Precio: 375,00 €

Si vienes de Empresa, puedes bonificar hasta el 100% del curso con el crédito FUNDAE

Contacta ahora con el centro

Junglebox S.L. (Responsable) tratará tus datos personales con la finalidad de gestionar el envío de solicitudes de información requeridas y el envío de comunicaciones promocionales sobre formación, derivadas de tu consentimiento. Podrás ejercer tus derechos de acceso, supresión rectificación, limitación, portabilidad y otros derechos, según lo indicado en nuestra P. de Privacidad​