- 1

Conexión a REST APIs con Angular HTTP y buenas prácticas
02:58 - 2

Solicitudes GET en APIs con Angular: Obtener Productos
10:41 - 3

Consulta de Producto Específico en eCommerce con Angular
11:31 - 4

Integración de Swiper en Angular para Galería de Productos
08:12 - 5

Creación de Productos con POST y Data Transfer Objects en Angular
15:59 - 6

Actualización de Datos con Métodos PUT y PATCH en APIs
14:23 - 7

Eliminar productos con solicitudes DELETE en Angular
06:04 - 8

Paginación de Productos con Parámetros URL en Angular
12:45 - 9

Ventajas de los Observables sobre Promesas en Angular
12:22 - 10

Implementación de Retry con Observadores en Angular
03:23
Descarga de Archivos con HTTP Client en Angular
Clase 21 de 23 • Curso de Consumo de APIs REST con Angular
Contenido del curso
- 11

Solución de Problemas CORS en Aplicaciones Angular
11:33 - 12

Gestión de Ambientes en Angular: Desarrollo vs Producción
05:06 - 13

Manejo de Errores en Observables con Angular
12:06 - 14

Transformaciones de Datos en el Frontend con Map y Pipes
06:02 - 15

Evitando el Callback Hell con SwitchMap y ZIP en Observables
10:42
- 16

Autenticación con JWT: Implementación y Gestión de Sesiones en APIs
19:43 - 17

Autenticación y Manejo de Tokens en Peticiones HTTP
09:31 - 18

Implementación de Interceptores en Angular para Medir Tiempos de Respuesta
08:03 - 19

Interceptores en Angular: Agregar Token Automáticamente
15:04 - 20

Uso de Contextos para Interceptores en Angular
05:50
Una necesidad muy común desde un front-end es la descarga de archivos provenientes de un servidor. Veamos cómo puedes manipular este tipo de información y lograr que el usuario pueda descargar un archivo.
Manipulando datos binarios
Los datos se transladan en forma binaria a través del canal de comunicación HTTP. Vamos a recibir dichos datos binarios y a manipularlos para crear el archivo.
1. Servicio para el manejo de archivos
Comienza creando un servicio para realizar peticiones y manipular archivos.
// services/files.service.ts
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class FilesService {
constructor() { }
getFile(urlFile: string): Promise<any> {
return fetch(urlFile, {
method: 'GET',
});
}
}
En el método getFile() hace un fetch a una URL para obtener el Buffer del archivo.
Un Buffer es un espacio en la memoria que almacena datos binarios. En NodeJS, es posible acceder a estos espacios de memoria con la clase Buffer. Los búferes almacenan una secuencia de enteros, de forma similar a una matriz en Javascript. Del lado del front-end, es posible recibir un búfer de datos y manipularlo para convertirlo en un PDF, un XLS, entre otros.
2. Convertir datos binario en un archivo
Al realizar la solicitud y recibir el Buffer, lo convertimos en Blob para posteriormente creamos una URL temporal con URL.createObjectURL() pasándole dicho Blob y abriendo una nueva pestaña utilizando window.open() en el navegador.
openFile(): void {
this.filesService.getFile('../../../assets/dummy.pdf')
.then(response => response.blob())
.then(pdf => {
window.open(URL.createObjectURL(pdf), '_blank');
})
.catch(err => {
console.log(err);
});
}
La manipulación de archivos es esencial, cada navegador interpreta los tipos de datos de una manera distinta. Es común encontrarse con comportamientos distintos en cada navegador como por ejemplo, Chrome suele descargar directamente el archivo, mientras que Firefox lo abre en una nueva pestaña. Dependiendo tu necesidad, asegúrate de probar tu aplicación en varios navegadores diferentes.
Contribución creada por: Kevin Fiorentino.