Erledigt!

Können Sie ein Beispiel für die Wiederverwendung von Schemas mit $ref im JSON-Schema geben?

Technologie
Informatik
Ingenieurwesen

Fortschritt

6 Schritte abgeschlossen!11,62 Sek.

Antwort

Sicherlich! In JSON Schema können Sie Schemas wiederverwenden, indem Sie mit dem Schlüsselwort $ref auf sie verweisen. Dies ist besonders nützlich für die Definition allgemeiner Komponenten wie Objekte oder Arrays, die mehrmals in Ihren JSON-Daten vorkommen. Im Folgenden finden Sie ein Beispiel, das zeigt, wie Schemas mit $ref wiederverwendet werden.

Beispiel für ein JSON-Schema:

{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "user": { "$ref": "#/definitions/user" }, "items": { "type": "array", "items": { "$ref": "#/definitions/item" } } }, "definitions": { "user": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] }, "item": { "type": "object", "properties": { "productId": { "type": "integer" }, "quantity": { "type": "integer" } }, "required": ["productId", "quantity"] } }, "required": ["user", "items"] }

Erklärung:

  1. Stammobjekt: Das Stammschema ist ein Objekt mit zwei Eigenschaften: user und items.

  2. Wiederverwendung des Benutzerschemas: Die Eigenschaft user verwendet $ref, um auf die Definition user unter definitions zu verweisen. Dieses Schema definiert ein Benutzerobjekt mit id, name und email.

  3. Wiederverwendung des Elementschemas: Die Eigenschaft items ist ein Array von Elementen, bei dem jedes Elementschema mit $ref auf die item-Definition verwiesen wird. Dieses Schema beschreibt die Struktur der einzelnen Elemente im Array, einschließlich productId und quantity.

  4. Erforderliche Eigenschaften: Sowohl der user als auch jeder item müssen bestimmte erforderliche Eigenschaften enthalten, die in ihren jeweiligen Schemas definiert sind.

Dieser Ansatz verbessert die Wartbarkeit und reduziert Redundanz, da Sie die Struktur für gemeinsame Komponenten an einem Ort definieren und im gesamten Schema darauf verweisen können.