AYUDA PARA NODOS

Axios Retry NPM (Cómo funciona para desarrolladores)

Actualizado 6 de junio, 2024
Compartir:

Las aplicaciones web suelen depender de varios servicios, API y recursos externos para proporcionar a los usuarios información y funciones dinámicas en el vertiginoso entorno digital actual. Pero ocasionalmente, estas dependencias pueden causar problemas como tiempos de espera, interrupciones por errores de red y fallos temporales, que pueden detener procesos importantes como la creación de PDF. Para garantizar la fiabilidad de sus programas y gestionar estas situaciones de forma educada, los desarrolladores han respondido implementando potentes mecanismos de reintento.

Axios Retry npm es una robusta biblioteca que facilita la creación de una lógica de reintento personalizada para las solicitudes de intercepción HTTP fallidas. Está construido sobre Axios, un cliente HTTP muy popular para Node.js. Los desarrolladores pueden diseñar flujos de trabajo de generación de PDF robustos y tolerantes a fallos combinando Axios Retry, el plugin de Axios con IronPDF, una biblioteca repleta de funciones para crear documentos PDF en aplicaciones Node.js.

Este post tratará sobre los beneficios de combinar Axios Retry con IronPDF y mostrará cómo estas dos herramientas funcionan bien juntas para mejorar la capacidad de las aplicaciones Node.js para generar PDFs. Mediante la integración de las resistentes capacidades de reintento de Axios Retry con las sofisticadas funcionalidades de creación de PDF de IronPDF, los desarrolladores pueden garantizar la ejecución fiable de los trabajos de generación de PDF, incluso en caso de interrupciones temporales de la red, fallos idempotentes de las solicitudes o interrupciones de los servicios externos.

Lógica de reintentos

Para las peticiones Axios, Axios-retry agiliza la implementación de la lógica de reintento. En función de parámetros programables, como códigos de estado HTTP o tipos de error concretos, reintenta automáticamente las solicitudes fallidas.

Políticas de reintento personalizadas

Para regular la frecuencia y el método de reintento de las solicitudes, los desarrolladores pueden crear sus propias políticas de reintento personalizadas. Esto implica definir la cantidad máxima de reintentos que se pueden hacer, los intervalos entre reintentos y las circunstancias en las que deben producirse los reintentos.

Retroceso exponencial

Axios-retry facilita la popular técnica de reintentos conocida como exponential backoff, que alarga el intervalo entre peticiones fallidas y reintentos de forma incremental. Esto aumenta la probabilidad de éxito de las solicitudes fallidas y los reintentos y ayuda a evitar inundar el servidor con consultas repetitivas.

Errores reintentables

Los desarrolladores tienen la posibilidad de designar qué tipos de error o códigos de estado HTTP deben provocar un reintento. Esto permite controlar con precisión qué errores deben tratarse como fallos permanentes y cuáles deben reintentarse.

Interceptores de reintentos

Axios-retry ofrece interceptores que permiten a los programadores alterar el comportamiento de reintento para cada petición individual. Esto proporciona interceptores para el manejo de errores reintentables, el seguimiento de los intentos de reintento y el ajuste de los retrasos de reintento.

Configuración global

Con axios-retry, los desarrolladores pueden configurar la política de reintento para la primera petición y todas las peticiones fallan. La primera solicitud falla cada pull request, y con cada otro reintento, Axios solicita la configuración específica del cliente de forma global. Esto facilita la provisión de políticas de reintento uniformes a lo largo de todo el ciclo de vida de la solicitud pull y de la solicitud de una aplicación.

Crear y configurar Axios retry

Bien, aquí tienes un ejemplo de código que muestra cómo utilizar Axios Retry en una aplicación Node.js y explica cada paso brevemente:

Importar dependencias

Para añadir capacidades de reintento a Axios, primero importamos la librería axios-retry y la librería axios, que son necesarias para realizar peticiones HTTP.

const axios = require('axios');
const axiosRetry = require('axios-retry');
const axios = require('axios');
const axiosRetry = require('axios-retry');
const axios = require( 'axios');
const axiosRetry = require( 'axios-retry');
VB   C#

Crear Instancia Axios

Utilizamos axios.create() para crear una instancia de Axios. Esto nos permite modificar el comportamiento de Axios para adaptarlo a escenarios de uso particulares. Para configurar Axios Retry, llame a axiosRetry() y proporcionarla en la instancia de Axios junto como un objeto de opciones. Algunos de los parámetros que se incluyen en el objeto de opciones son el recuento de reintentos (reintentos)el retardo de reintento (retryDelay)y la condición de reintento (retryCondition).

//  Crear una instancia de Axios
const axiosInstance = axios.create();
//  Crear una instancia de Axios
const axiosInstance = axios.create();
'  Crear una instancia de Axios
const axiosInstance = axios.create()
VB   C#

Reintentos

Indica el número de veces que se puede realizar un intento. RetryDelay: Establece el valor global para el intervalo entre hecho intercepta sólo las solicitudes fallidas, solicitud de solicitudes fallidas, tiempo de espera, y los intentos de reintento utilizando un enfoque exponencial backoff, lo que hace que el retraso crezca exponencialmente con cada uno de interceptar las solicitudes fallidas, tiempo de espera de solicitud o solicitud de reintento o solicitud falla error. En este ejemplo, lo fijamos en 3.

axiosRetry(axiosInstance, {
    retries: 3, //  Número de reintentos
    retryDelay: axiosRetry.exponentialDelay, //  Función de retardo exponencial
    retryCondition: (error) => {
        //  Personalizar la condición de reintento en función del error
        return axiosRetry.isNetworkOrIdempotentRequestError(error) 
 error.response.status === 429; //  Reintento en caso de error de red o código de estado 429 (límite de velocidad)
    }
});
axiosRetry(axiosInstance, {
    retries: 3, //  Número de reintentos
    retryDelay: axiosRetry.exponentialDelay, //  Función de retardo exponencial
    retryCondition: (error) => {
        //  Personalizar la condición de reintento en función del error
        return axiosRetry.isNetworkOrIdempotentRequestError(error) 
 error.response.status === 429; //  Reintento en caso de error de red o código de estado 429 (límite de velocidad)
    }
});
axiosRetry(axiosInstance, { retries:= 3, retryDelay:= axiosRetry.exponentialDelay, retryCondition:= Function([error])
	axiosRetry.isNetworkOrIdempotentRequestError([error]) [error].response.status == 429
	Return axiosRetry.isNetworkOrIdempotentRequestError([error]) [error].response.status
End Function})
VB   C#

Primeros pasos

¿Qué es IronPDF?

IronPDF Node.js es un conjunto de herramientas ampliamente utilizado que nos permite crear, editar y renderizar documentos PDF dentro de programas. Hay varias formas de trabajar con PDF: puede insertar texto, imágenes y formas en los existentes, extraer texto e imágenes de los preexistentes y convertir páginas HTML en PDF. Incluso puede crear nuevos documentos PDF a partir de contenido HTML, fotos o datos sin procesar.

Una de las principales ventajas de IronPDF es que es muy fácil de usar. Los desarrolladores pueden empezar fácilmente a producir PDF desde sus proyectos Node.js gracias a su intuitiva API y a su completa documentación. Otras dos características de IronPDF que permiten a los desarrolladores producir rápidamente documentos PDF de alta calidad son su eficacia y velocidad.

Algunas de las ventajas de IronPDF son

  • convertir HTML, imágenes y datos sin procesar en PDF.
  • Eliminación de texto e imágenes de archivos PDF.
  • Incluya encabezados, pies de página y marcas de agua en los archivos PDF.
  • Los archivos PDF están encriptados y protegidos con contraseña.
  • La posibilidad de rellenar y firmar documentos electrónicamente.

Instalar bibliotecas

Instalar las librerías necesarias y configurar el plugin Axios con capacidades de reintento son los pasos iniciales para integrar Axios Retry con IronPDF para la generación de PDF en una aplicación Node.js. Aquí tienes información detallada:

npm install axios 
npm install axios-retry 
npm install ironpdf
npm install axios 
npm install axios-retry 
npm install ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install axios npm install axios-retry npm install ironpdf
VB   C#

Uso de Axios retry con IronPDF para convertir la URL de la solicitud

Examine el siguiente escenario: material HTML dinámico recuperado de una API externa solicitar URL es utilizado por una aplicación Node.js para crear informes PDF. Para garantizar que las tareas de creación de PDF finalizan correctamente, el programa debe gestionar con elegancia los posibles fallos de la red o los problemas de limitación de velocidad.

Establecer una instancia de Axios y establecer sus configuraciones de Axios Retry:

const axios = require('axios');
const axiosRetry = require('axios-retry');
//  Crear instancia Axios
const axiosInstance = axios.create();
//  Configurar Axios Retry
axiosRetry(axiosInstance, {
    retries: 3, //  Número de reintentos
    retryDelay: axiosRetry.exponentialDelay, //  Función de retardo exponencial
    retryCondition: (error) => {
        //  Personalizar la condición de reintento en función del error
        return axiosRetry.isNetworkOrIdempotentRequestError(error) 
 error.response.status === 429; //  Reintento en caso de error de red o código de estado 429 (límite de velocidad)
    }
});
const axios = require('axios');
const axiosRetry = require('axios-retry');
//  Crear instancia Axios
const axiosInstance = axios.create();
//  Configurar Axios Retry
axiosRetry(axiosInstance, {
    retries: 3, //  Número de reintentos
    retryDelay: axiosRetry.exponentialDelay, //  Función de retardo exponencial
    retryCondition: (error) => {
        //  Personalizar la condición de reintento en función del error
        return axiosRetry.isNetworkOrIdempotentRequestError(error) 
 error.response.status === 429; //  Reintento en caso de error de red o código de estado 429 (límite de velocidad)
    }
});
const axios = require( 'axios');
const axiosRetry = require( 'axios-retry');
'  Crear instancia Axios
const axiosInstance = axios.create()
'  Configurar Axios Retry
axiosRetry(axiosInstance, { retries:= 3, retryDelay:= axiosRetry.exponentialDelay, retryCondition:= Function([error])
	axiosRetry.isNetworkOrIdempotentRequestError([error]) [error].response.status == 429
	Return axiosRetry.isNetworkOrIdempotentRequestError([error]) [error].response.status
End Function})
VB   C#

Para crear documentos PDF a partir de información HTML, utilice IronPDF. Asegúrese de que su clave de licencia se utiliza para inicializar IronPDF:

const IronPdf = require("@ironsoftware/ironpdf");
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
const document=IronPdf.PdfDocument;
const IronPdf = require("@ironsoftware/ironpdf");
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
const document=IronPdf.PdfDocument;
const IronPdf = require("@ironsoftware/ironpdf")
Dim config=IronPdf.IronPdfGlobalConfig config.setConfig({licenseKey: ''});
const document=IronPdf.PdfDocument
VB   C#

Ahora, utilice la instancia Axios configurada para recuperar material HTML de un código fuente externo (como una API) y utilizar IronPDF para crear un documento PDF:

//  Obtención de contenido HTML mediante Axios
axiosInstance.get('https://api.example.com/data')
    .then(response => {
        const htmlContent = response.data;
        //  Generar PDF a partir de contenido HTML con IronPDF
    const pdf = await document.fromHtml(htmlContent);
    await pdf.saveAs("output.pdf");
    })
    .catch(error => {
        console.error('Error fetching HTML content:', error.message);
    });
//  Obtención de contenido HTML mediante Axios
axiosInstance.get('https://api.example.com/data')
    .then(response => {
        const htmlContent = response.data;
        //  Generar PDF a partir de contenido HTML con IronPDF
    const pdf = await document.fromHtml(htmlContent);
    await pdf.saveAs("output.pdf");
    })
    .catch(error => {
        console.error('Error fetching HTML content:', error.message);
    });
'  Obtención de contenido HTML mediante Axios
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'axiosInstance.@get('https: .@then(response => { const htmlContent = response.data; const pdf = await document.fromHtml(htmlContent); await pdf.saveAs("output.pdf"); }).catch(@error => { console.@error('@Error fetching HTML content:', @error.message); });
VB   C#

Adapte las opciones de reintento, el procedimiento de creación de PDF y el tratamiento de errores a las necesidades de su aplicación. Para asegurarse de que la integración es fiable y funcional, pruébela exhaustivamente.

Puede gestionar los reintentos de peticiones HTTP y producir documentos PDF de forma fiable en su aplicación Node.js integrando Axios Retry con IronPDF utilizando estas técnicas. Con esta combinación, podrá diseñar flujos de trabajo sólidos para la producción de PDF que resistan eficazmente los fallos de la red y las interrupciones del servicio.

A continuación se muestra la salida generada a partir del código anterior.

Axios Retry NPM (Cómo funciona para desarrolladores): Figura 1 - Salida de URL a PDF con peticiones reintentadas

Conclusión

En resumen, la combinación de Axios Retry e IronPDF en aplicaciones Node.js proporciona una forma sólida y fiable de gestionar los reintentos de solicitudes HTTP y crear documentos PDF. Los desarrolladores pueden mejorar la resistencia y la estabilidad de sus procesos de solicitud HTTP utilizando las capacidades de reintento de Axios Retry para asegurarse de que sus aplicaciones gestionan los problemas temporales de la red, los fallos del servidor o las condiciones de limitación de velocidad con elegancia.

En conjunto, Axios Retry e IronPDF proporcionan un potente conjunto de herramientas para desarrollar aplicaciones Node.js escalables y duraderas que necesiten generar PDF y gestionar peticiones HTTP con coherencia. Mediante la implementación de estas bibliotecas, los desarrolladores pueden reducir los efectos de los fallos temporales y las interrupciones de la red y garantizar la entrega regular de documentos PDF de alta calidad, mejorando así la fiabilidad y la experiencia de usuario de sus aplicaciones.

El paquete incluye una licencia de por vida a un precio razonable para IronPDF. Para muchos sistemas, el paquete se ofrece por sólo 749 dólares, lo que supone un valor fantástico. Proporciona ayuda de ingeniería en línea a los titulares de licencias 24 horas al día, 7 días a la semana. Para obtener más información sobre el cargo, visite la página sitio web. Para obtener más información sobre los productos de Iron Software, visite este enlace página de la biblioteca.

SIGUIENTE >
Retry Node.js (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.6 recién publicada

Instalación gratuita de npm Ver licencias >
123