Sobes.tech
Junior

Čo je to JSON schéma?

sobes.tech AI

Odpoveď od AI

JSON schéma (JSON Schema) je lexikálny štandard založený na JSON na opis štruktúry a obmedzení dát v formáte JSON. Umožňuje validáciu, opis a dokumentáciu JSON dát.

Hlavné ciele:

  • Validácia: Kontrola, či JSON príklad zodpovedá určitej štruktúre.
  • Dokumentácia: Opis formátu JSON dát.
  • Interakcia: Výmena metadát medzi systémami.

Kľúčové komponenty JSON schémy:

  • Dátové typy: string, number, integer, boolean, object, array, null.
  • Kľúčové slová pre obmedzenia:
    • type: Očakávaný dátový typ.
    • properties: Opis vlastností objektu. Každá vlastnosť má svoju podštruktúru.
    • required: Zoznam povinných vlastností pre objekt.
    • items: Opis prvkov poľa.
    • minLength/maxLength: Obmedzenia dĺžky pre reťazce.
    • minimum/maximum: Obmedzenia pre čísla.
    • pattern: Regulárny výraz pre reťazec.
    • enum: Zoznam povolených hodnôt.
    • allOf/anyOf/oneOf/not: Logické kombinácie schém.
  • Kľúčové slová pre metadáta:
    • title: Krátky názov schémy.
    • description: Podrobný opis schémy.
    • default: Predvolená hodnota.

Príklad JSON schémy:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unikátne identifikátor používateľa"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Príklad JSON dát, ktoré sú platné podľa tejto schémy:

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

Príklad JSON dát, ktoré nie sú platné podľa tejto schémy:

{
  "id": "abc" // Neplatný typ
  // Chýba povinné pole "username"
}

Použitie JSON schémy v QA automatizácii:

  • Validácia odpovedí API: Kontrola, či JSON odpovede zodpovedajú stanovenému formátu.
  • Validácia požiadaviek: Kontrola vstupných JSON dát pred ich spracovaním.
  • Generovanie testovacích dát: Použitie schémy na vytváranie platných (alebo neplatných) testovacích príkladov.
  • Dokumentácia: Automaticky udržiavaná dokumentácia API.

Existujú knižnice na prácu s JSON schémami v rôznych programovacích jazykoch (napr. jsonschema pre Python, json-schema-validator pre Java).