Si llevas tiempo trabajando con Angular seguro que ya conoces los interceptores HTTP. Actúan como pequeños guardianes del flujo de peticiones HTTP: pueden adjuntar tokens de autenticación, registrar llamadas, aplicar reintentos o gestionar caché. El problema surge cuando aplicamos esas reglas de forma global y sin criterio. No todas las peticiones deben reintentarse ni almacenarse en caché. Un endpoint de login no debe reintentar automáticamente, una API de analítica no necesita caché, y en cambio un catálogo de productos se beneficia claramente de reintentos y almacenamiento en memoria para ofrecer una experiencia rápida al usuario. Los interceptores condicionales solucionan esto al permitir aplicar lógica solo cuando corresponde, manteniendo el pipeline ligero y seguro.

Objetivos básicos

Aplicar reintentos solo a las APIs que los toleran, cachear respuestas cuando aporten mejora de rendimiento y evitar lógica innecesaria en peticiones sensibles. En Angular 20 esto se logra creando interceptores que inspeccionan la petición y deciden si ejecutar o no cierta lógica.

Intercepción condicional para reintentos

Los reintentos son útiles en redes inestables pero peligrosos en endpoints sensibles como autenticación. Una estrategia habitual es detectar la URL objetivo y aplicar retry solo cuando la petición apunta al catálogo de productos. Por ejemplo, comprobar si la ruta contiene api slash catalog y en ese caso encadenar la lógica de reintento con un máximo de 3 intentos. Para el resto de peticiones se deja pasar la llamada sin reintentos.

Intercepción condicional de caché

Un caché en memoria simple acelera las consultas repetidas. Se suele habilitar solo para peticiones GET a la API de catálogo. La implementación típicamente mantiene un Map donde la clave es la URL y el valor la respuesta. Si existe entrada se devuelve la respuesta almacenada, si no se continúa con la petición y al recibir respuesta se guarda para futuros usos. De este modo las GET a rutas del catálogo responden muy rápido sin afectar a otras APIs.

Composición condicional

La verdadera potencia aparece al componer interceptores. Para las peticiones al catálogo podemos encadenar primero la lógica de caché y luego la de reintentos, o viceversa según la necesidad. Para cualquier otra petición se devuelve el flujo sin modificaciones. En Angular 20 esto se incorpora al registrar un interceptor que delega condicionalmente en otras funciones de interceptor según la URL y el método HTTP.

Registro en Angular 20

Al arrancar la aplicación con bootstrapApplication se registra provideHttpClient con withInterceptors y se pasa el interceptor condicional principal. De esa forma las reglas de reintento y caché quedan centralizadas y aplicadas solo cuando aportan valor.

Beneficios

Mayor control y seguridad al evitar reintentos en endpoints sensibles, mejora de rendimiento al cachear lo que conviene, y un código más limpio que evita ifs dispersos por toda la aplicación. Además este patrón facilita activar o desactivar comportamientos por entorno, por ejemplo habilitar logs extensos en desarrollo y un pipeline optimizado en producción.

Casos de uso reales

Retry para listados de catálogo y productos pero nunca para login, caché para datos de catálogo o perfiles de usuario que mejoren la navegación, y reglas diferentes según entorno o feature flags. También es habitual combinar esto con estrategias de invalidación de caché cuando hay actualizaciones de datos.

Sobre Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Diseñamos soluciones personalizadas que integran inteligencia artificial y ciberseguridad para proyectos que necesitan robustez y escalabilidad. Ofrecemos servicios cloud AWS y Azure y acompañamos a nuestros clientes con servicios inteligencia de negocio y soluciones con power bi para transformar datos en valor. Si buscas desarrollar una plataforma o una aplicación corporativa podemos ayudarte con el diseño e implementación, desde la arquitectura backend hasta agentes IA y automatizaciones. Conecta con nuestras capacidades de desarrollo en desarrollo de aplicaciones a medida y software multicanal y descubre también cómo optimizamos infraestructuras en la nube en servicios cloud AWS y Azure.

Palabras clave

aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Conclusión

Los interceptores condicionales en Angular 20 permiten construir una tubería HTTP inteligente y eficiente. En lugar de aplicar reglas globales que pueden causar problemas, se potencian las peticiones que realmente lo necesitan y se mantiene el resto del sistema sencillo y seguro. Si necesitas ayuda para diseñar e implementar estas estrategias dentro de una aplicación a medida o para integrar capacidades de inteligencia artificial y seguridad en tu producto, en Q2BSTUDIO podemos acompañarte en todo el proceso.