Sobes.tech
Junior

Mi az a JSON séma?

sobes.tech MI

Válasz az MI-től

A JSON séma (JSON Schema) egy lexikális szabvány, amely a JSON alapjaira épül, és a JSON formátumú adatok szerkezetét és korlátait írja le. Lehetővé teszi a JSON adatok validálását, leírását és dokumentálását.

Fő célok:

  • Validálás: Ellenőrizni, hogy egy JSON példány megfelel-e egy meghatározott szerkezetnek.
  • Dokumentáció: A JSON adatformátum leírása.
  • Interakció: Metaadatok cseréje rendszerek között.

A JSON séma fő összetevői:

  • Adattípusok: string, number, integer, boolean, object, array, null.
  • Kulcsszavak korlátozásokhoz:
    • type: Várt adattípus.
    • properties: Egy objektum tulajdonságainak leírása. Minden tulajdonságnak saját al-sémája van.
    • required: Kötelező tulajdonságok listája.
    • items: Egy tömb elemeinek leírása.
    • minLength/maxLength: Karakterláncok hosszúságának korlátozása.
    • minimum/maximum: Számokra vonatkozó korlátozások.
    • pattern: Reguláris kifejezés karakterláncokra.
    • enum: Engedélyezett értékek listája.
    • allOf/anyOf/oneOf/not: Logikai kombinációk sémák között.
  • Metaadat kulcsszavak:
    • title: A séma rövid címe.
    • description: A séma részletes leírása.
    • default: Alapértelmezett érték.

Példa JSON séma:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Felhasználó egyedi azonosítója"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Érvényes JSON-adatok példája a séma szerint:

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

Érvénytelen JSON-adatok példája a séma szerint:

{
  "id": "abc" // Hibás típus
  // Hiányzik a kötelező "username" mező
}

A JSON séma használata QA automatizálásban:

  • API-válaszok validálása: Ellenőrizni, hogy a JSON-válaszok megfelelnek-e a formátumnak.
  • Kérések validálása: Bejövő JSON-adatok ellenőrzése feldolgozás előtt.
  • Tesztadatok generálása: A séma használata érvényes (vagy érvénytelen) példák létrehozására.
  • Dokumentáció: Automatikusan frissített API-dokumentáció készítése.

Különböző programozási nyelveken léteznek könyvtárak a JSON-sémákkal való munkához (pl. jsonschema Pythonhoz, json-schema-validator Java-hoz).