Tengo una aplicación React and Node y tengo una tabla con botón de descarga. Cuando hago clic en el botón de descarga, hace una solicitud a la aplicación de nodo que quiero que haga una llamada a una API REST para descargar un archivo zip en el navegador.
Logré descargar el archivo zip al vincular la URL de la API REST directamente desde React, pero mi gerente me dijo que no expusiera la URL de la API y la enmascarara a través de Node.
Probé diferentes métodos que encontré en la web pero ninguno de ellos funcionó, solo uno que descargó un zip que contenía un archivo que probablemente contenía la base64 de los archivos.
Me gustaría una solución tanto para React como para Node sobre cómo descargar desde una API REST.
Gracias
Código de reacción:
$("#example tbody").on('click', '#buton123', function() { var id=response.data.mesaje[$(this).closest('tr').index()].id; article2 = {id2:id} axios.post('http://localhost:3001/descarcare',article2) .then((respo nse)=>{ //How to download zip from node }) });Código de nodo:
app.post('/descarcare', function(req, res) { var id = req.body.id2; console.log(id); axios.get('http://restapi.com/aaa?id=123').then((response)=>{ //Code to download zip from rest api )} });Puede hacer una solicitud de api a su archivo zip de origen que contiene api de descanso de nodejs y obtener datos de transmisión y luego canalizarlos. De esta manera, puede obtener datos de transmisión directamente para reaccionar a la aplicación js desde la aplicación nodejs
Consulte las jszip y jszip-utils disponibles para comprimir el contenido.