A lo largo de la guía, vemos como podemos trabajar con métodos GET. Sin embargo Nest tiene compatibilidad con todos los métodos HTTP (get, post, put, delete, patch) y su forma de aplicarlos es similar. Necesitamos hacer uso de los separadores con el @ que ya vienen incluidos en Nest. Veamos un ejemplo con el método post.

@Controller('/tasks')
export class TasksController {
  constructor(private taskService: TasksService) {}

  @Get()
  getAllTasks() {
    return this.taskService.getTasks();
  }

  @Post()
  createTask() {
    return 'Una tarea esta siendo creada';
  }

  @Put()
  updateTask() {
    return 'Una tarea esta siendo actualizada';
  }

  @Delete()
  deleteTask() {
    return 'Una tarea esta siendo eliminada';
  }

  @Patch()
  patchTasks() {
    return 'Una tarea esta siendo modificada';
  }
}

Una diferencia aclaratoria entre patch y put. Put actualiza toda una tarea mientras que patch actualiza solo una propiedad de la tarea que seleccionamos.

Para probar todas estas peticiones podes usar Postman o Thunder Client y fijarte que pasa. Yo uso Postman. Mirá lo que pasa cuando por ejemplo hago una petición post.

La respuesta es el mensaje que yo escribí para esa petición.

La respuesta es el mensaje que yo escribí para esa petición.

Podes (y es recomendado) pensar cada accion para cada peticion en el servicio y luego lo instancias en el controlador como this.nombreDelServicio.nombreDeLaFuncionParaEseMetodo