Facade & Services
Il layer applicativo
Il package @pzeta/postgrest espone due API ad alto livello costruite sopra repository, auth e cache. Sono il modo idiomatico di consumare la libreria nei progetti PZeta.
import { PostgRESTClient, BasePostgrestService } from '@pzeta/postgrest'
| API | Ruolo | Quando usarla |
|---|---|---|
PostgRESTClient | Facade — orchestra HTTP, auth, cache, repository factory | Setup rapido, applicazioni standalone, accesso diretto al repository |
BasePostgrestService | Classe astratta wrapper su EnhancedPostgRESTRepository | Service di dominio con DI, error messages italiani, helper RPC |
Architettura
┌─────────────────────────────┐
│ BasePostgrestService<T> │ ← classe figlia: ClientiService, FattureService...
│ (abstract) │
└──────────────┬──────────────┘
│ usa
▼
┌─────────────────────────────┐
│ PostgRESTClient │ ← facade (init/destroy lifecycle)
└──────────────┬──────────────┘
│ crea
▼
┌─────────────────────────────┐
│ EnhancedPostgRESTRepository │ ← CRUD type-safe + cache integrata
└─────────────────────────────┘
Pattern consigliato
Estendere BasePostgrestService per ogni risorsa di dominio, iniettare un PostgRESTClient condiviso, e aggiungere metodi specifici (ricerca avanzata, RPC, computed fields) nella classe figlia.
create, update, delete) effettuate via BasePostgrestService invalidano la cache del repository sottostante. Per invalidare la cache globale dopo bulk operations chiama client.clearCache().Sotto-pagine
BasePostgrestService
Classe base astratta per service applicativi PostgREST. Wrapper di alto livello su EnhancedPostgRESTRepository con API CRUD omogenea, error messages italiani e helper RPC.
PostgRESTClient
Facade Pattern di @pzeta/postgrest. Punto di ingresso principale — nasconde la complessità di HTTP client, autenticazione, cache e repository factory.
Service Pattern (BasePostgrestService)
Classe base astratta per service applicativi PostgREST. CRUD omogeneo, error messages italiani, RPC helpers, integrazione Inversify DI. Pattern di adozione canonico nei progetti PZeta.
BasePostgrestService
Classe base astratta per service applicativi PostgREST. Wrapper di alto livello su EnhancedPostgRESTRepository con API CRUD omogenea, error messages italiani e helper RPC.