JSON Schema Intro: JSON-Strukturen validieren wie SQL-Constraints

2024-04-13

Gueltige Syntax reicht nicht aus: Felder koennen trotzdem fachlich falsch sein. JSON Schema beschreibt die erlaubte Form fuer Runtime- oder CI-Pruefungen.

Minimales Schema

Wurzel als object oder array definieren; properties und required festlegen.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["id", "name"],
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string", "minLength": 1 }
  }
}

Wichtige Keywords

type, enum, items, additionalProperties: false, oneOf und $ref decken die meisten Faelle ab.

Im Code nutzen

JavaScript mit ajv, Python mit jsonschema, Go mit gojsonschema.

OpenAPI-Request/Response-Schemas basieren auf JSON Schema-Teilmenge.

Gegenueber Syntax-Check

Zuerst JSON.parse, dann Schema-Validierung - so sind Fehlertypen klar getrennt.

Im Team einfuehren

Schema ins Repo legen, Fixtures in CI pruefen, API-Aenderungen zuerst im Schema nachvollziehen.