Sobes.tech
Junior

Wat is een JSON-schema?

sobes.tech AI

Antwoord van AI

JSON-schema (JSON Schema) is een lexicaal standaard gebaseerd op JSON voor het beschrijven van de structuur en beperkingen van gegevens in JSON-formaat. Het maakt het mogelijk om JSON-gegevens te valideren, te beschrijven en te documenteren.

Belangrijkste doelen:

  • Validatie: Controleren of een JSON-voorbeeld voldoet aan een bepaalde structuur.
  • Documentatie: Beschrijven van het JSON-gegevensformaat.
  • Interactie: Uitwisseling van metadata tussen systemen.

Belangrijke componenten van JSON-schema:

  • Gegevenstypen: string, number, integer, boolean, object, array, null.
  • Sleutelwoorden voor beperkingen:
    • type: Verwachte gegevenstype.
    • properties: Beschrijving van de eigenschappen van een object. Elke eigenschap heeft zijn eigen sub-schema.
    • required: Lijst van verplichte eigenschappen.
    • items: Beschrijving van de elementen in een array.
    • minLength/maxLength: Limieten voor de lengte van strings.
    • minimum/maximum: Limieten voor nummers.
    • pattern: Reguliere expressie voor strings.
    • enum: Lijst van toegestane waarden.
    • allOf/anyOf/oneOf/not: Logische combinaties van schema’s.
  • Sleutelwoorden voor metadata:
    • title: Korte titel van het schema.
    • description: Gedetailleerde beschrijving van het schema.
    • default: Standaardwaarde.

Voorbeeld van een JSON-schema:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unieke gebruikers-ID"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Voorbeeld van geldige JSON-gegevens volgens dit schema:

{
  "id": 123,
  "username": "testuser",
  "isActive": false
}

Voorbeeld van ongeldige JSON-gegevens volgens dit schema:

{
  "id": "abc" // Verkeerd type
  // Verplicht veld "username" ontbreekt
}

Gebruik van JSON-schema in QA Automation:

  • Validatie van API-antwoorden: Controleren of JSON-antwoorden voldoen aan het formaat.
  • Validatie van verzoeken: Controleren van inkomende JSON-gegevens vóór verwerking.
  • Generatie van testgegevens: Gebruik het schema om geldige (of ongeldige) voorbeelden te maken.
  • Documentatie: Automatisch onderhouden documentatie van de API.

Er zijn bibliotheken voor het werken met JSON-schema’s in verschillende programmeertalen (bijvoorbeeld jsonschema voor Python, json-schema-validator voor Java).