Genera dati JSON fittizi realistici da un JSON Schema per test API, prototipazione UI, load testing e sviluppo guidato dal contratto.
Passo 1 – Fornisci un JSON Schema
- Incolla uno schema nell’editor di sinistra o importalo da file/URL/esempio.
- Quando possibile, parti dallo schema reale della tua API per mantenere i mock vicini alla produzione.
Passo 2 – Rendi lo schema adatto ai mock
- Evita keyword non supportate come
$ref, dependencies, e schemi condizionali (if/then/else). - Se il tuo schema usa
$ref, prova ad aprire il Mock Generator da uno strumento che pre-carica e dereferenzia gli schemi (ad esempio “Genera dati mock” nelle pagine code→schema). - Mantieni lo schema focalizzato su type, properties, required, items, formats e constraints.
Passo 3 – Configura le impostazioni di generazione
- Scegli un locale per nomi, indirizzi e numeri di telefono realistici.
- Imposta un seed per dati mock riproducibili (ottimo per test e snapshot).
- Regola batch size, numero elementi array, distribuzioni numeriche e probabilità dei campi opzionali.
- Usa la simulazione di dati mancanti/sporchi per testare validazione e gestione errori UI.
Passo 4 – Genera e rivedi l’output
- Fai clic su “Genera dati mock” per produrre un output che rispetta i vincoli dello schema.
- Se i valori non ti convincono, rendi lo schema più restrittivo (formati, enum, min/max) e rigenera.
Passo 5 – Usa i mock in test e generatori
- Copia o scarica il JSON e usalo come fixture per test unitari/integrati.
- Passa il JSON generato ai code generator (TypeScript/Java/ecc.) per creare DTO coerenti.
Nota importante sulle funzionalità JSON Schema
- Schemi che si basano su
$ref, dependencies, o if/then/else devono essere semplificati o dereferenziati prima della generazione mock. - I validator di schema differiscono per interpretazione di draft e keyword; usa un validatore completo in CI per contract testing rigoroso.
Esempio: JSON Schema → JSON mock
// JSON Schema (input)
{
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"email": { "type": "string", "format": "email" },
"active": { "type": "boolean" },
"createdAt": { "type": "string", "format": "date-time" }
},
"required": ["id", "email", "active", "createdAt"]
}
// Mock JSON (output example)
{
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"email": "[email protected]",
"active": true,
"createdAt": "2024-03-01T10:15:00.000Z"
}