Facade & Services

Punto di ingresso applicativo della libreria — facade PostgRESTClient per setup rapido e BasePostgrestService come classe base per service di dominio CRUD + RPC.

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'
APIRuoloQuando usarla
PostgRESTClientFacade — orchestra HTTP, auth, cache, repository factorySetup rapido, applicazioni standalone, accesso diretto al repository
BasePostgrestServiceClasse astratta wrapper su EnhancedPostgRESTRepositoryService 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.

Le operazioni di scrittura (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