Fase di testQuesto ambiente è in test pre-lancio — tutti i dati saranno azzerati al lancio.
Mockomat
— Architettura

Un modello che scrivi una volta.
Superfici che restano sincronizzate.

Mockomat è costruito attorno a quattro idee. Insieme rendono i dati mock un'estensione naturale del tuo codebase, non un progetto secondario. Ecco come ragiona il sistema — e cosa ti restituisce.

— La pipeline

Dalle entità a due superfici live.

Descrivi entità e attributi; Mockomat compila uno schema GraphQL tipizzato, collega gli attributi al pool di dati e serve sia un endpoint JSON che un'anteprima renderizzata dallo stesso artefatto compilato.

PROGETTAZIONE COMPILAZIONE EROGAZIONE CONSUMO Il tuo modello User · email · fullName · avatarUrl Order · orderNo · total · status Compilatore schema · types · resolvers pool ↔ mappature dei campi piano di seed DETERMINISTICO Runtime senza stato · con seed resolver per tipo renderer per tipo seed = sha(...) POST /graphql application/json Per il tuo codice, la tua CI, i tuoi agenti IA GET /preview text/html Per PM, designer e stakeholder mockomat.pool un pool condiviso · sola lettura
— Le quattro idee

Principi, non pattern.

Non abbiamo costruito Mockomat accumulando funzionalità. Ogni capacità deriva da uno di questi quattro impegni. Se li comprendi, puoi prevedere come si comporta il resto del sistema.

01

Schema-first.

Tu progetti il modello. Mockomat lo compila.

Tutto parte dalle tue entità e attributi. I dati mock, lo schema GraphQL, la documentazione, l'anteprima renderizzata — tutto deriva da un'unica fonte di verità. Modifica il modello, tutto ciò che è a valle si rigenera.

seed
02

Replay deterministico.

Stesso seed in ingresso. Stessi dati in uscita. Ogni volta.

Il runtime è stateless e guidato dal seed. Una richiesta a /graphql in qualsiasi momento riproduce dallo stesso seed concordato dal tuo team — così uno snapshot di oggi corrisponde a uno snapshot in CI domani. Niente fixture instabili, niente drift tra gli ambienti.

03

Multi-tenant di default.

Workspace, progetti, ruoli, chiavi con scope.

Ogni account è un confine di tenant. All'interno, i progetti delimitano gli schemi; i ruoli delimitano i diritti di modifica; le API key delimitano l'accesso esterno. La configurazione è isolata per tenant fin dal primo byte — mai aggiunta a posteriori.

JSON UI
04

Due superfici, un modello.

Leggibile dalle macchine per il codice. Leggibile dalle persone per la revisione.

Lo stesso modello serve /graphql per la tua applicazione e /preview per gli stakeholder. Gli ingegneri consumano JSON; designer e PM vedono una tabella o lista renderizzata degli stessi identici dati. Nessuna seconda fonte di verità per le revisioni di prodotto.

— Generazione del codice

Esporta il tuo modello come un progetto reale.

Quando il prototipo finisce e inizia la distribuzione, il tuo schema Mockomat non resta bloccato nel nostro servizio. Un click genera un client Angular completamente tipizzato e uno scaffold server NestJS — entrambi collegati allo stesso contratto GraphQL che hai già validato.

FRONTEND Angular 17 · standalone components · Apollo client
BACKEND NestJS 10 · GraphQL code-first · resolver stubs
SCHEMA GraphQL SDL · rigenerato a ogni esportazione
codegen.pipeline · deterministico · idempotente
schema.graphql
il tuo modello · 38 tipi · 142 campi
compila
frontend/ — Angular
query tipizzate · componenti
backend/ — NestJS
resolvers · DTOs · modules
MY-PROJECT.ZIP
📁 my-project/
📁 frontend/
📄 src/app/users/users.component.ts
📄 src/app/users/users.queries.ts ← query Apollo tipizzate
📄 src/app/graphql.types.ts
📁 backend/
📄 src/users/users.resolver.ts
📄 src/users/user.dto.ts
📄 src/users/users.module.ts
📄 schema.graphql ← unica fonte di verità
📄 package.json
📄 README.md
— Perché il determinismo conta

Stesso input.
Stesso output.
Sempre.

I dati mock con seed casuali rompono i test, rompono le revisioni ed erodono la fiducia. Il runtime di Mockomat lega ogni risposta allo stesso seed scelto dal tuo team. Richiedi un record il mese prossimo — stessa forma, stessi valori, stesse relazioni.

# richiedi lo stesso utente due volte, a tre mesi di distanza
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }
# 90 giorni dopo, stessa query…
$ curl mockomat.app/p/abc/graphql -d '{ user(id:42) { email } }'
{ "data": { "user": { "email": "ada@bessemer.com" } } }