Voltooid!

Kunt u een voorbeeld geven van het hergebruiken van schema's met $ref in JSON Schema?

Technologie
Informatica
Techniek

Voortgang

6 stappen uitgevoerd!11,62 sec

Antwoord

Zeker! In JSON Schema kunt u schema's hergebruiken door ernaar te verwijzen met het trefwoord $ref. Dit is met name handig voor het definiëren van veelgebruikte componenten zoals objecten of matrices die meerdere keren in uw JSON-gegevens voorkomen. Hieronder ziet u een voorbeeld dat laat zien hoe u schema's met $ref opnieuw kunt gebruiken.

Voorbeeld 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"] }

Uitleg:

  1. Root Object: Het root schema is een object dat twee eigenschappen heeft: user en items.

  2. Gebruikersschema hergebruiken: De eigenschap user gebruikt $ref om te verwijzen naar de definitie user onder definitions. Dit schema definieert een gebruikersobject met een id, name en email.

  3. Hergebruik van itemschema: De eigenschap items is een array van items waarbij naar elk itemschema wordt verwezen met behulp van $ref naar de item-definitie. Dit schema schetst de structuur van elk item in de matrix, inclusief productId en quantity.

  4. Vereiste eigenschappen: Zowel de user als elke item moeten bepaalde vereiste eigenschappen bevatten die in hun respectievelijke schema's zijn gedefinieerd.

Deze aanpak verbetert de onderhoudbaarheid en vermindert redundantie door u in staat te stellen de structuur voor gemeenschappelijke componenten op één plaats te definiëren en ernaar te verwijzen in uw hele schema.