In dit artikel
Wat is JSON Schema?
JSON Schema is een vocabulaire waarmee u de structuur en validatieregels voor JSON-gegevens kunt beschrijven. Geschreven in JSON zelf, definieert een schema welke eigenschappen een object kan hebben, welke typen zijn toegestaan, welke velden verplicht zijn en welke beperkingen gelden -- informele datacontracten worden zo omgezet in machineleesbare specificaties.
De meest gebruikte versie is Draft-07, hoewel nieuwere versies (2019-09, 2020-12) functies toevoegen zoals conditionele schema's en dynamische referenties. Een JSON Schema Generator automatiseert het tijdrovende proces van handmatig schema's schrijven -- het analyseert voorbeeld-JSON-gegevens en leidt automatisch de typen, structuur en verplichte velden af.
Hoe schemageneratie werkt
Een schemagenerator onderzoekt uw voorbeeld-JSON en produceert een schema dat het zou valideren. Het proces omvat type-inferentie, structuuranalyse en constraintdetectie.
- Type-inferentie -- elke waarde wordt geïnspecteerd om het JSON-type te bepalen (string, number, integer, boolean, null, array, object) en het schema wijst het bijbehorende type-sleutelwoord toe
- Geneste structuuranalyse -- objecten worden recursief geanalyseerd om subschema's voor elke eigenschap te genereren, en arrays worden geïnspecteerd om het itemschema af te leiden uit hun elementen
- Detectie van verplichte velden -- alle eigenschappen in het voorbeeld worden doorgaans als verplicht gemarkeerd, aangezien de generator aanneemt dat het voorbeeld een volledige geldige instantie vertegenwoordigt
Probeer gratis — geen aanmelding vereist
Een JSON Schema genereren →Wanneer JSON Schema gebruiken
JSON Schema is een fundamenteel hulpmiddel voor elk project dat JSON-gegevens verzendt of ontvangt.
- API-requestvalidatie -- valideer inkomende payloads tegen een schema voordat ze worden verwerkt, wijs ongeldig gevormde verzoeken vroeg af en geef duidelijke foutmeldingen aan API-consumenten
- Formuliergeneratie -- UI-bibliotheken zoals react-jsonschema-form en vue-form-generator kunnen automatisch formulieren renderen vanuit een JSON Schema, waardoor backend-validatie en frontend-UI synchroon blijven
- Contracttesten in CI/CD -- verifieer dat API-responses overeenkomen met het verwachte schema in integratietests, zodat breaking changes worden ontdekt voordat ze productie bereiken
Veelgestelde vragen
Welke JSON Schema draft-versie moet ik gebruiken?
Draft-07 is de veiligste keuze voor brede compatibiliteit -- de meeste validators, formuliergeneratoren en codegeneratoren ondersteunen het volledig. Gebruik 2020-12 als u geavanceerde functies nodig heeft zoals $dynamicRef, prefixItems of unevaluatedProperties. Controleer altijd of uw validatorbibliotheek de gekozen draft ondersteunt.
Hoe combineer ik meerdere schema's?
JSON Schema biedt compositiesleutelwoorden: allOf vereist dat alle subschema's overeenkomen, anyOf vereist dat minstens één overeenkomt, en oneOf vereist dat precies één overeenkomt. Gebruik $ref om herbruikbare schemadefinities te refereren. Bijvoorbeeld, een User-schema kan allOf gebruiken om een basis PersonSchema te combineren met extra authenticatievelden.
Kan ik TypeScript-typen genereren uit een JSON Schema?
Ja. Tools zoals json-schema-to-typescript en quicktype converteren JSON Schemas naar TypeScript-interfaces, waardoor uw frontend-typen synchroon blijven met uw backend-contracten. Dit is vooral nuttig in monorepo's waar het schema dient als de enige bron van waarheid voor zowel API-validatie als client-side typecontrole.