-
Notifications
You must be signed in to change notification settings - Fork 0
Interceptors
La libreria fornisce due HttpInterceptorFn da registrare in app.config.ts.
// 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.
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 SystemServiceGestisce automaticamente lo stato di caricamento per ogni chiamata HTTP:
- Chiama
LoadingService.show()all'avvio della request - Chiama
LoadingService.hide()al completamento tramitefinalize()— 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(...);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.
- → LoadingService — contatore e signal
isLoading - → Loading Overlay — componente visuale spinner
- → SystemService — bootstrap e
environmentSig
Sviluppato e mantenuto da GPA — Gruppo Progetti Avanzati s.r.l. · gpa@gpagroup.it · +39 065913642 · P.IVA 05049391005 · ISO 9001 · ISO 27001
Sede legale: Via Ferdinando Galiani, 68 — 00191 Roma | Sedi operative: Piazzale Asia 21, Roma · Via Badoero 67, Roma · Viale Chiavellati 9, Foligno (PG)
npm · GitHub · Segnala un problema · Licenza MIT