JSON Schema est un vocabulaire qui permet d'annoter et de valider des données JSON. Il définit la structure, les types et les contraintes de vos données.
Qu'est-ce que JSON Schema ?
Un JSON Schema est lui-même un document JSON qui décrit la forme attendue d'un autre document JSON. Il spécifie quels champs doivent exister, quels types ils devraient être et quelles valeurs sont acceptables.
{ "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer", "minimum": 0 }, "email": { "type": "string", "format": "email" } }, "required": ["name", "email"]}Pourquoi utiliser JSON Schema ?
Sans validation, votre application accepte silencieusement n'importe quelle donnée. JSON Schema attrape les erreurs tôt — aux frontières de l'API, lors du chargement de la configuration ou avant les écritures en base de données.
- Contrats d'API — Assurez-vous que les corps de requête et de réponse correspondent au format attendu.
- Validation de configuration — Attrapez les fautes de frappe dans les fichiers de configuration.
- Validation de formulaires — Validez les entrées utilisateur côté client et serveur.
- Documentation — Un schéma bien écrit sert de documentation vivante.
Mots-clés principaux
type spécifie le type de données attendu. Pour les chaînes : minLength, maxLength, pattern, format. Pour les nombres : minimum, maximum. Pour les tableaux : items, minItems, maxItems. Pour les objets : properties, required, additionalProperties.
Composition avec allOf, anyOf, oneOf
Les schémas du monde réel combinent fréquemment plusieurs contraintes. allOf exige que tous les schémas correspondent. anyOf exige qu'au moins un corresponde. oneOf exige qu'exactement un corresponde. not inverse un schéma.
Déboguer du JSON invalide
Quand la validation échoue, vous avez besoin de messages d'erreur clairs. La plupart des validateurs produisent une sortie détaillée. L'outil JSON Formatter peut vous aider à formater et inspecter votre JSON.
Bonnes pratiques
- Utilisez
$ref— Évitez de dupliquer les schémas. - Soyez spécifique — Utilisez
enumpour les ensembles de valeurs fixes. - Versionnez vos schémas — Utilisez
$schemaet$id. - Validez aux frontières — Vérifiez les données le plus tôt possible.
Essayez-le
Utilisez un outil local pour valider vos données JSON — tout s'exécute dans votre navigateur.