Nest
Tutorial Nest: Métodos DELETE en controladores
Nest controladores DELETE: creación y uso. Aprende a crear y usar controladores DELETE en Nest con ejemplos prácticos y detallados.
Aprende Nest GRATIS y certifícateEn NestJS, uno de los métodos HTTP más comunes es el método DELETE
. Este método permite eliminar un recurso específico identificado por su ID o cualquier otro parámetro único.
Para definir un método DELETE en un controlador de NestJS, se utiliza el decorador @Delete()
en una función dentro de la clase del controlador. Esta función manejará las solicitudes DELETE a la ruta especificada.
Creación de un controlador con método DELETE
Para empezar, se creará un controlador.
NestJS proporciona una serie de decoradores que ayudan en la definición de rutas y métodos.
El decorador @Delete()
especifica que el método subsiguiente será utilizado para manejar las solicitudes HTTP DELETE
.
Ejemplo:
import { Controller, Delete, Param } from '@nestjs/common';
@Controller('items')
export class ItemsController {
@Delete(':id')
async deleteItem(@Param('id') id: string): Promise<string> {
// Aquí iría la lógica para eliminar el ítem.
return `Ítem ${id} eliminado con éxito.`;
}
}
En este ejemplo, se tiene un controlador para items
. El método deleteItem
está designado para manejar las solicitudes DELETE
dirigidas a /items/:id
, donde :id
es un parámetro que representa el identificador del ítem a eliminar.
El decorador @Param('id')
se utiliza para extraer el parámetro id
de la ruta. De este modo, si alguien envía una solicitud DELETE
a /items/123
, el método deleteItem
recibirá '123' como el valor de id
.
Implementación de la lógica de eliminación
El método anterior es sólo un esqueleto. En una aplicación real, se necesita conectar este controlador a un servicio que gestione la lógica de negocio. Este servicio puede interactuar con una base de datos, un sistema de archivos, una API externa, entre otros.
Ejemplo con un servicio:
Primero, se crea un servicio:
import { Injectable } from '@nestjs/common';
@Injectable()
export class ItemsService {
async delete(id: string): Promise<string> {
// Aquí iría la lógica para eliminar el ítem en la base de datos.
return `Ítem ${id} eliminado con éxito.`;
}
}
Luego, se integra el servicio en el controlador:
import { Controller, Delete, Param } from '@nestjs/common';
import { ItemsService } from './items.service';
@Controller('items')
export class ItemsController {
constructor(private readonly itemsService: ItemsService) {}
@Delete(':id')
async deleteItem(@Param('id') id: string): Promise<string> {
return this.itemsService.delete(id);
}
}
Ahora, el método deleteItem
del controlador utiliza el servicio ItemsService
para llevar a cabo la eliminación real del ítem.
Manejo de errores
En una aplicación real, es probable que surjan situaciones donde no se pueda eliminar un ítem debido a diversas razones, como la no existencia del ítem o errores internos del servidor. NestJS ofrece herramientas para manejar estos errores de manera eficiente.
Ejemplo con manejo de errores:
Modificaremos el servicio para simular un escenario donde el ítem no se encuentra:
import { Injectable, NotFoundException } from '@nestjs/common';
@Injectable()
export class ItemsService {
async delete(id: string): Promise<string> {
// Simulación: Si el ID es '404', simular que el ítem no se encuentra.
if (id === '404') {
throw new NotFoundException(`Ítem ${id} no encontrado.`);
}
// Aquí iría la lógica para eliminar el ítem en la base de datos.
return `Ítem ${id} eliminado con éxito.`;
}
}
El decorador NotFoundException
de NestJS permite lanzar un error con un código de estado 404 (No encontrado).
Conclusión
Los métodos DELETE en controladores de NestJS ofrecen una forma efectiva de eliminar datos específicos, proporcionando a los desarrolladores el control necesario para garantizar la integridad y seguridad de la información.
Ejercicios de esta lección Métodos DELETE en controladores
Evalúa tus conocimientos de esta lección Métodos DELETE en controladores con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Métodos GET en controladores
Método find en un servicio con repositorio
Desarrollo e inyección de servicios
Creación de entidades y tablas
Método DELETE en un controlador
Filtrados en consultas de repositorios
Método GET en un controlador
Estrategia de autenticación JwtStrategy
CRUD con repositorios
Método delete en un servicio con repositorio
API REST CRUD de entidad Restaurante con TypeORM
Creación de una entidad TypeORM
Crear y utilizar módulos
Métodos PUT en controladores
Iniciar sesión método de login
Configuración de TypeORM con MySQL
Gestión de errores en controladores
Decoradores en entidades
Instalación NestJS
Recibir y servir imágenes
Estrategia de autenticación JWT
Método PUT en un controlador
Comandos NestJS CLI
Método POST en un controlador
Login y registro
API REST CRUD de entidades Product y Manufacturer
Método save en un servicio con repositorio
Registro de usuarios
Métodos POST en controladores
Todas las lecciones de Nest
Accede a todas las lecciones de Nest y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Instalación Nestjs
Introducción Y Entorno
Comandos Nestjs Cli
Introducción Y Entorno
Métodos Get En Controladores
Controladores
Métodos Post En Controladores
Controladores
Métodos Put En Controladores
Controladores
Métodos Delete En Controladores
Controladores
Gestión De Errores En Controladores
Controladores
Recibir Y Servir Imágenes
Controladores
Desarrollo E Inyección De Servicios
Servicios E Inyección De Dependencias
Crear Y Utilizar Módulos
Módulos
Configuración De Typeorm Con Mysql
Typeorm
Creación De Entidades Y Tablas
Typeorm
Decoradores En Entidades
Typeorm
Crud Con Repositorios
Typeorm
Filtrados En Consultas De Repositorios
Typeorm
Registro De Usuarios
Autenticación
Iniciar Sesión Método De Login
Autenticación
Estrategia De Autenticación Jwtstrategy
Autenticación
Login Y Registro
Autenticación
Estrategia De Autenticación Jwt
Autenticación
Certificados de superación de Nest
Supera todos los ejercicios de programación del curso de Nest y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el propósito de los métodos DELETE.
- Aprender cómo implementar métodos DELETE en controladores de NestJS utilizando el decorador @Delete().
- Entender cómo definir rutas para manejar solicitudes DELETE.
- Aprender cómo manejar errores en métodos DELETE.