Skip to content

Interceptors

simone.tiberti edited this page Apr 17, 2026 · 1 revision

Interceptors HTTP

La libreria fornisce due HttpInterceptorFn da registrare in app.config.ts.


Configurazione

// app.config.ts
import { contextInterceptor, loadingInterceptor } from '@gpa-gruppo-progetti-avanzati-srl/ng-core-ui';

export const appConfig: ApplicationConfig = {
  providers: [
    provideHttpClient(
      withInterceptors([contextInterceptor, loadingInterceptor])
    ),
    // ...
  ]
};

L'ordine è importante: contextInterceptor prima di loadingInterceptor.


contextInterceptor

Inietta automaticamente gli header di contesto GPA in ogni richiesta HTTP uscente:

Header Valore Fonte
X-AppId appId dell'applicazione environmentSig().appId
X-Context Contesto corrente (se presente) contextsSig()

Utile per il tracciamento lato backend e per il routing multi-tenant.

// Nessuna configurazione aggiuntiva necessaria — funziona automaticamente
// dopo il bootstrap di SystemService

loadingInterceptor

Gestisce automaticamente lo stato di caricamento per ogni chiamata HTTP:

  1. Chiama LoadingService.show() all'avvio della request
  2. Chiama LoadingService.hide() al completamento tramite finalize() — garantito sia in caso di successo che di errore
// Equivalente manuale (non necessario con l'interceptor)
this.loading.show();
this.http.get('/api/data').pipe(
  finalize(() => this.loading.hide())
).subscribe(...);

Escludere una request dal loadingInterceptor

Se si vuole effettuare una chiamata HTTP senza mostrare lo spinner (es. polling in background), gestire il loading manualmente e non usare loadingInterceptor, oppure implementare un meccanismo di esclusione tramite header custom.


Vedi anche

Clone this wiki locally