Skip to main content
CheckTown
Generators

JSON Schema Generator: schema's maken vanuit voorbeelden

Gepubliceerd 5 min lezen
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.

Gerelateerde Tools