- 1

Instalación y configuración inicial de NestJS para APIs
06:28 - 2

Instalación del CLI de NestJS y primer proyecto con API
11:29 - 3

Creación de endpoints dinámicos para consultar usuarios en NestJS
20:23 - 4

Operaciones CRUD en APIs REST con Postman
23:37 - 5

Método PUT para actualizar usuarios con ID automático
19:42 - 6

Códigos de estado HTTP y manejo de errores en APIs con NestJS
16:07 - 7

DTOs y validación automática de datos en APIs con NestJS
19:31 - 8

Patrón de servicios e inyección de dependencias en NestJS
25:09 - 9

Configuración de variables de entorno en NestJS
20:44 - 10

Creación y organización de módulos en NestJS para aplicaciones escalables
12:26 quiz de Fundamentos y Primer CRUD
Creación de endpoints dinámicos para consultar usuarios en NestJS
Clase 3 de 35 • Curso de Backend con NestJS
Contenido del curso
- 11

Configuración de PostgreSQL con Docker y Docker Compose
16:08 - 12

Configuración de PostgreSQL con TypeORM en aplicaciones NestJS
12:17 - 13

Creación de entidades ORM con decoradores en TypeScript
09:17 - 14

Implementación del Repository Pattern con TypeORM en NestJS
29:55 - 15

Relaciones uno a uno entre usuarios y perfiles en PostgreSQL
17:00 - 16

Actualización de DTOs con mapped types en NestJS para perfil y usuario
38:56 - 17

Generación automática de módulos CRUD con NestJS y AI
25:34 - 18

Relaciones uno a muchos con TypeORM en NestJS
17:56 - 19

Creación de entidad Category con relaciones many-to-many en NestJS
15:28 - 20

Relaciones many-to-many con TypeORM y validación de arrays
17:40 - 21

Reutilización de servicios entre módulos en NestJS
09:04 - 22

Configuración de migraciones de base de datos con TypeORM
23:01 - 23

Migraciones de base de datos sin pérdida de información
20:46 quiz de Base de Datos y Persistencia con TypeORM
- 24

Cómo proteger contraseñas con hashing usando Bcrypt en NestJS
10:15 - 25

Serialización de datos para excluir campos sensibles en APIs
04:13 - 26

Configuración de autenticación con Passport en NestJS
19:16 - 27

Implementación de endpoint de login con Node.js y NestJS
09:09 - 28

Implementación de JSON Web Token para autenticación en NestJS
16:15 - 29

Protección de endpoints con JWT guards en NestJS
11:34 - 30

Automatización de user ID en APIs con JWT
11:48 quiz de Autenticación y Autorización
- 31

Integración del SDK de OpenAI en Node.js para automatizar contenido
28:26 - 32

Documentación automática de APIs con Swagger en NestJS
15:59 - 33

Preparar una API Node.js para producción: seguridad y despliegue
10:46 - 34

Desplegar aplicación Node.js a producción con Railway y PostgreSQL
21:11 - 35

Desarrollo de API REST escalable con NestJS en producción
02:36
Diseñar una API REST eficiente es crucial para cualquier aplicación moderna. Aquí descubrirás, paso a paso, cómo crear endpoints en NestJS que permiten exponer y consultar información de usuarios, desde la definición de controladores hasta la correcta gestión de rutas e identificadores dinámicos.
¿Qué es un endpoint y cómo se consume en un backend?
Un endpoint es el punto de acceso donde los clientes, como aplicaciones móviles o web, se conectan mediante el protocolo HTTP para intercambiar datos con el backend. Diferentes dispositivos pueden consumir estos endpoints para acceder a recursos como listados de usuarios o posts. La solicitud se realiza generalmente por rutas específicas según el servicio que se desea obtener.
- Dispositivos conectan a endpoints por HTTP, como
/userspara obtener usuarios. - Los endpoints retornan la información solicitada, como arrays de objetos en formato JSON.
¿Cómo se configura y ejecuta el servidor en un puerto distinto?
Modificar el puerto de una aplicación puede hacerse desde la terminal utilizando variables de entorno o directamente cambiando la configuración. En el caso de proyectos Node.js, como NestJS, puedes correr el servidor en un puerto diferente con:
npm run start:dev --port=4001para ejecutar en el puerto 4001.- Usar variables de entorno:
export PORT=4000seguido denpm run start:dev. - Así puedes verificar que ya no responde por el puerto anterior y sí por el nuevo especificado.
¿Para qué sirve un controller en NestJS y cómo se crea?
El controller administra el acceso a los endpoints y conecta las rutas HTTP con la lógica de la aplicación. Usando el CLI de NestJS, puedes generar fácilmente nuevos controladores con comandos como:
nest g controller userspara crearuser.controller.ts, el archivo de pruebas, y actualizar elapp.module.ts.- En este controller, defines rutas y métodos que manejarán las peticiones de los clientes.
¿Cómo se define y utiliza una interfaz en TypeScript para usuarios?
Para aprovechar la verificación de tipos, se recomienda definir una interfaz para los usuarios, por ejemplo:
interface User {
id: string;
name: string;
email: string;
}
- Así, un array de usuarios deberá ajustarse al shape definido.
- TypeScript previene inserciones incorrectas y ayuda a evitar errores comunes.
¿Cómo se expone el endpoint para obtener la lista de usuarios?
Con el decorador adecuado en el controller, puedes exponer un endpoint accesible mediante HTTP GET, por ejemplo GET /users. Retorna la lista completa de usuarios en formato JSON.
- El controller usa decoradores para asociar métodos a rutas y protocolos.
- NestJS gestiona el formateo a JSON automáticamente, simplificando el desarrollo.
¿Cómo se crean endpoints dinámicos para buscar usuarios por ID?
Para devolver información de un usuario específico, se define un endpoint con parámetro, como /users/:id. Así se consulta el usuario cuyo identificador coincida con el recibido:
- Utiliza dos puntos para indicar un parámetro dinámico en la ruta.
- El decorador
@Paramrecupera el valor desde la URL y permite buscar en el array de usuarios. - Devuelve solo el usuario correspondiente, en vez de toda la lista.
¿Qué ocurre si el usuario consultado no existe?
Si se solicita un ID inexistente, la aplicación actualmente no retorna respuesta o muestra una página en blanco. Es esencial manejar este comportamiento para mejorar la experiencia y robustez del servicio.
- Situaciones con IDs no encontrados deben ser controladas.
- Se plantea el reto de cómo manejar estos casos e invitar a buscar soluciones optimizadas para responder errores de forma adecuada.
¿Te animas a proponer cómo gestionarías los errores cuando el ID del usuario no existe? Tu experiencia y creatividad pueden aportar mucho a la comunidad.