Générateur JSON Schema en Ligne
Genere un JSON Schema depuis n'importe quel JSON. Ideal pour la validation d'API et la documentation.
Pourquoi l'utiliser
Des API documentees et validees automatiquement
Draft 2020-12
Genere des schemas compatibles avec la derniere norme IETF et OpenAPI 3.1.
Prive
Ton JSON est traite dans ton navigateur. Il n'est jamais envoye a un serveur.
Types deduits
Detecte automatiquement les chaines, nombres, booleens, tableaux et objets imbriques.
Instantane
Schema genere en quelques millisecondes. Sans inscription, sans attente.
Comment ça marche
Trois étapes, sans complications
Colle ton JSON
Colle n'importe quel objet JSON valide. Le generateur analyse la structure et les types de chaque champ.
Examine le schema genere
Le JSON Schema apparait avec les types deduits, les proprietes obligatoires et les descriptions optionnelles.
Copie ou telecharge le schema
Utilise le schema dans ton API, ton validateur (ajv, zod) ou ta documentation OpenAPI. Copie en un clic.
FAQ
Des questions ?
JSON Schema est un vocabulaire qui permet d'annoter et de valider des documents JSON, defini comme un brouillon IETF. Il decrit la structure attendue d'un document JSON : quelles proprietes il doit avoir, leurs types (string, number, array, object), lesquelles sont obligatoires, les plages de valeurs valides, les patterns regex pour les chaines, et bien plus. C'est le standard de facto pour documenter et valider les API REST, les contrats de donnees et les configurations d'applications.
La version la plus recente est JSON Schema draft 2020-12, publiee en decembre 2020. Elle apporte des ameliorations a $ref (desormais combinable avec d'autres mots-cles), prefixItems pour les tableaux de tuples et le vocabulaire unevaluatedProperties. Pour la compatibilite avec les outils plus anciens, draft-07 reste tres repandu. OpenAPI 3.1 adopte JSON Schema draft 2020-12 comme sous-ensemble, donc si tu utilises OpenAPI 3.1, tu dois utiliser 2020-12.
Dans JSON Schema, le mot-cle 'required' est un tableau de chaines contenant les noms des proprietes qui doivent etre presentes dans l'objet. Une propriete definie dans 'properties' mais non listee dans 'required' est implicitement optionnelle : elle peut etre presente ou absente sans que la validation echoue. La distinction est critique pour les API : un champ obligatoire manquant dans une requete doit renvoyer une erreur 400, tandis qu'un champ optionnel absent utilise simplement la valeur par defaut.
Pour les tableaux d'objets, utilise 'type': 'array' avec 'items' pointant vers le schema de l'objet contenu. Par exemple : { 'type': 'array', 'items': { 'type': 'object', 'properties': { ... } } }. Tu peux aussi definir 'minItems' et 'maxItems' pour controler la longueur du tableau, et 'uniqueItems': true pour exiger l'absence de doublons. Pour les tableaux de longueur fixe avec des types heterogenes, utilise 'prefixItems' (draft 2020-12) ou 'items' en tableau (draft-07).
$ref est un mot-cle JSON Schema qui reference un autre schema par URI, permettant des definitions reutilisables. Il s'utilise avec $defs (draft 2020-12) ou definitions (draft-07) pour eviter de repeter la meme structure. Par exemple, un schema 'Address' defini une seule fois peut etre reference depuis 'billingAddress' et 'shippingAddress'. Cela reduit la redondance, simplifie la maintenance et est essentiel pour les schemas OpenAPI avec des modeles partages entre plusieurs endpoints.
Histoire de JSON Schema et l'ecosysteme de validation
JSON Schema a ete propose par Kris Zyp en 2009 comme specification informelle publiee sur le blog de SitePen. La premiere version formelle en tant que brouillon IETF etait draft-00 en 2010. Depuis, il y a eu de nombreuses revisions (draft-01 a draft-07, puis 2019-09 et 2020-12) sans devenir un RFC officiel, bien qu'il soit largement adopte comme standard de facto. Le processus de normalisation IETF exige des implementations de reference et des tests d'interoperabilite, que la communaute JSON Schema termine activement.
L'integration de JSON Schema avec OpenAPI est fondamentale dans le developpement d'API modernes. OpenAPI 2.0 (Swagger) utilisait un sous-ensemble limite de JSON Schema draft-04. OpenAPI 3.0 a ameliore la compatibilite mais maintenu ses propres extensions comme 'nullable'. OpenAPI 3.1 a adopte JSON Schema draft 2020-12 complet, eliminant les divergences. Les principales bibliotheques de validation incluent ajv (Another JSON Schema Validator, JavaScript, avec support draft 2020-12), jsonschema (Python), json-schema-validator (Java) et NJsonSchema (.NET).
Zod, TypeBox et Yup representent une evolution ou le schema et la validation sont definis en TypeScript avec inference de types automatique, generant JSON Schema en sortie (et non en entree). Ce modele 'schema-first avec inference de types' supplante l'usage direct de JSON Schema dans les projets TypeScript modernes, bien que JSON Schema reste indispensable pour la validation inter-langages, les contrats d'API entre equipes avec des stacks differents, et la documentation d'evenements dans les architectures orientees evenements (AsyncAPI).