Schémas et génération de types

Données d’exemple depuis un JSON SchemaDes fixtures reproductibles à partir de contraintes

Choisissez le nombre et la graine : chaque instance est validée par le schéma.

Données d’exemple depuis un JSON Schema

JSON Schema

Instances générées

Le schéma et les données restent dans ce navigateur, sans téléversement.

Options de génération

Chaque résultat respecte séparément le schéma fourni.

Vérifiez le schéma, puis lancez la génération.

Données d’exemple depuis un JSON Schema permet de préparer des tests quand le contrat existe déjà mais que les enregistrements manquent. Décrivez les valeurs autorisées et les propriétés obligatoires sans recopier de données de production.

Ce générateur de mock crée des échantillons JSON synthétiques. Le schéma décrit chaque résultat ; le nombre demandé contrôle uniquement la collection extérieure. Les relations métier entre champs ne sont pas déduites de leur nom.

Pourquoi Données d’exemple depuis un JSON Schema ?

Rejouer un échec

Conservez ensemble le schéma, la graine et les paramètres. Une même version du moteur reproduit le même lot de données reproductibles. Le cas reste partageable même si les données réelles de l’application évoluent ensuite.

Une graine alimente deux groupes identiques de résultats synthétiques.

Tester des bornes valides

Le mode Bornes recherche des extrémités possibles pour les nombres, les longueurs et les tailles de collection. Une validation indépendante contrôle chaque candidat. Une contrainte inconnue arrête la génération au lieu de devenir une valeur de remplacement trompeuse.

Des valeurs aux bornes valides passent le contrôle ; les contraintes non prises en charge sont arrêtées.

Préparer un cas reproductible

01

Séparer quantité et taille des tableaux

Les valeurs initiales sont 5 résultats et la graine 42. Si la racine du schéma est un tableau, chaque résultat est lui-même un tableau. minItems et maxItems déterminent sa taille interne. Graine : entier de 0 à 4294967295.

02

Déclencher une exécution explicite

Choisissez Normal ou Bornes, puis Générer ou Ctrl/Cmd+Enter. Une modification rend immédiatement l’ancien export indisponible. Arrêter annule le travail en cours ; un ancien worker ne peut pas remplacer un résultat plus récent.

03

Lire les chemins avant de sauvegarder

Corrigez les contraintes signalées et relancez. Exemple et Effacer présentent le remplacement avant Appliquer et permettent un rétablissement. JSONL conserve une instance complète sur chaque ligne, sans indentation multilignes.

Les contraintes utilisées

Objets imbriqués

properties, required et additionalProperties déterminent les propriétés produites. Une propriété facultative absente diffère d’une valeur null présente : cette dernière doit être autorisée par le schéma de la propriété.

Intersection des règles

Les unions type, enum et const sont évaluées avec les contraintes voisines. Un nombre figurant dans enum ne peut pas être retenu s’il dépasse la borne maximum du même schéma.

Unicité locale

uniqueItems rend uniques les éléments de chaque tableau, sans imposer que tous les résultats du lot soient différents. Les limites de longueur, de nombre d’éléments et de propriétés sont également prises en compte.

Deux enveloppes de fichier

JSON ajoute toujours un tableau extérieur, même pour un résultat. JSONL place une valeur JSON indépendante sur chaque ligne, objet, tableau ou primitive. Le schéma fourni valide les résultats individuels, pas cette enveloppe d’export. JSON utilise une indentation fixe de deux espaces ; JSONL garde chaque instance sur une ligne.

Périmètre et budgets

Un sous-ensemble explicite de draft-07
Schémas booléens, listes type, enum, const, properties, required, additionalProperties, items à schéma unique, uniqueItems, tailles et bornes numériques inclusives ou exclusives sont couverts. Déclarez type explicitement : une contrainte seule peut autoriser un autre type. true produit des entiers simples.
Contraintes refusées
Références, combinaisons, conditions, pattern, format, multipleOf, items en tuple et mots-clés inconnus sont signalés avec leur chemin. Les objets littéraux dans enum et const restent des données : leurs clés ne sont pas interprétées comme des mots-clés.
Les bornes ne constituent pas une exploration exhaustive
Ce mode produit encore des valeurs valides. Il n’injecte pas d’erreurs et ne couvre pas nécessairement chaque extrémité ni chaque combinaison. Un domaine restreint peut donner la même sortie avec plusieurs graines.
Un travail borné
De 1 à 100 résultats. Le schéma est limité à 100000 caractères, une profondeur AST de 12, conteneurs properties et enum compris et 2000 nœuds AST. Les chaînes générées atteignent au maximum 1000 unités de code UTF-16, les tableaux et objets 100 entrées. Des budgets d’essais, d’opérations et de cinq secondes s’ajoutent. Budget total : 20000 opérations et 1000000 caractères de sortie. Les mêmes limites de chaînes et collections valent pour const et enum. La graine est un entier de 0 à 4294967295.
Un échec ne prouve pas l’impossibilité
Des contraintes contradictoires, un domaine insuffisant pour uniqueItems ou un budget épuisé peuvent empêcher de produire un résultat. Un délai dépassé ne démontre pas que le schéma est mathématiquement insatisfaisable.
Des valeurs synthétiques
Ni base de noms, ni packs régionaux, ni corrélations entre champs, API mock hébergée, import d’URL ou stockage cloud. Les nombres hors de la précision du moteur sont refusés plutôt qu’arrondis silencieusement. Les nombres doivent être finis, les entiers appartenir à la plage sûre JavaScript. La conversion du jeton numérique en Number puis en texte doit préserver sa valeur décimale.

Données d’exemple depuis un JSON Schema : questions

Quels drafts JSON Schema sont pris en charge ?

Seul le sous-ensemble draft-07 présenté dans les règles est accepté. Les références et mots-clés non pris en charge sont signalés ; les déclarations d’autres drafts ne sont pas interprétées comme équivalentes.

Quelle différence avec la validation JSON Schema ?

La validation examine des données existantes. Données d’exemple depuis un JSON Schema suit le sens inverse : le schéma sert à construire de nouvelles instances, qui sont ensuite vérifiées indépendamment.

Comment générer plusieurs enregistrements ?

Réglez le nombre entre 1 et 100. Le résultat JSON est toujours un tableau de ces instances, même pour une seule. Le nombre ne remplace pas les contraintes de taille des tableaux internes.

Les données respectent-elles toujours le schéma ?

Chaque instance publiée passe une validation indépendante du sous-ensemble accepté. Si une contrainte est inconnue, contradictoire ou trop coûteuse à satisfaire, l’outil échoue explicitement au lieu de fournir un résultat partiel.

Mon schéma est-il téléversé ?

Non. Lecture, génération et validation ont lieu dans le navigateur chargé. Le schéma n’est pas envoyé à une API et aucune référence distante n’est récupérée.

Une contrainte à ajouter ?

Essayer Données d’exemple depuis un JSON Schema

Utilisez Données d’exemple depuis un JSON Schema sur un petit contrat, puis comparez les modes Normal et Bornes selon les assertions de vos tests.

Conservez le schéma et les paramètres avec le fichier pour qu’un collègue puisse rejouer exactement le même cas.