Skip to main content
CheckTown
Générateurs

Generateur JSON Schema : creer des schemas a partir d'exemples

Publié le 5 min de lecture
Dans cet article

Qu'est-ce que JSON Schema ?

JSON Schema est un vocabulaire qui permet de decrire la structure et les regles de validation des donnees JSON. Ecrit en JSON lui-meme, un schema definit quelles proprietes un objet peut avoir, quels types sont autorises, quels champs sont obligatoires et quelles contraintes s'appliquent -- transformant des contrats de donnees informels en specifications lisibles par les machines.

La version la plus utilisee est Draft-07, bien que les versions plus recentes (2019-09, 2020-12) ajoutent des fonctionnalites comme les schemas conditionnels et les references dynamiques. Un generateur de JSON Schema automatise le processus fastidieux d'ecriture manuelle des schemas -- il analyse des donnees JSON d'exemple et infere automatiquement les types, la structure et les champs obligatoires.

Comment fonctionne la generation de schemas

Un generateur de schemas examine votre JSON d'exemple et produit un schema qui le validerait. Le processus implique l'inference de types, l'analyse de structure et la detection de contraintes.

  • Inference de types -- chaque valeur est inspectee pour determiner son type JSON (string, number, integer, boolean, null, array, object) et le schema attribue le mot-cle de type correspondant
  • Analyse de structure imbriquee -- les objets sont analyses recursivement pour generer des sous-schemas pour chaque propriete, et les tableaux sont inspectes pour inferer le schema d'elements a partir de leur contenu
  • Detection des champs obligatoires -- toutes les proprietes presentes dans l'exemple sont generalement marquees comme obligatoires, car le generateur suppose que l'exemple represente une instance valide complete

Essayez gratuitement — sans inscription

Generer un JSON Schema →

Quand utiliser JSON Schema

JSON Schema est un outil fondamental pour tout projet qui envoie ou recoit des donnees JSON.

  • Validation des requetes API -- validez les donnees entrantes par rapport a un schema avant traitement, en rejetant les requetes mal formees tot et en fournissant des messages d'erreur clairs aux consommateurs de l'API
  • Generation de formulaires -- des bibliotheques UI comme react-jsonschema-form et vue-form-generator peuvent generer automatiquement des formulaires a partir d'un JSON Schema, maintenant la validation backend et l'interface frontend synchronisees
  • Tests de contrat en CI/CD -- verifiez que les reponses API correspondent au schema attendu dans les tests d'integration, detectant les changements incompatibles avant qu'ils n'atteignent la production

Foire aux questions

Quelle version de draft JSON Schema utiliser ?

Draft-07 est le choix le plus sur pour une compatibilite large -- la plupart des validateurs, generateurs de formulaires et generateurs de code le supportent completement. Utilisez 2020-12 si vous avez besoin de fonctionnalites avancees comme $dynamicRef, prefixItems ou unevaluatedProperties. Verifiez toujours que votre bibliotheque de validation supporte le draft que vous choisissez.

Comment combiner plusieurs schemas ?

JSON Schema fournit des mots-cles de composition : allOf exige que tous les sous-schemas correspondent, anyOf exige qu'au moins un corresponde, et oneOf exige qu'exactement un corresponde. Utilisez $ref pour referencer des definitions de schema reutilisables. Par exemple, un schema User pourrait utiliser allOf pour combiner un schema PersonSchema de base avec des champs d'authentification supplementaires.

Peut-on generer des types TypeScript a partir d'un JSON Schema ?

Oui. Des outils comme json-schema-to-typescript et quicktype convertissent les JSON Schemas en interfaces TypeScript, garantissant que vos types frontend restent synchronises avec vos contrats backend. C'est particulierement utile dans les monorepos ou le schema sert de source unique de verite pour la validation API et la verification de types cote client.

Outils associés