Sobes.tech
Junior

Kas yra JSON schema?

sobes.tech AI

Atsakymas iš AI

JSON schema (JSON Schema) — tai leksinis standartas, pagrįstas JSON, skirtas aprašyti duomenų struktūrą ir apribojimus JSON formate. Jis leidžia validuoti, aprašyti ir dokumentuoti JSON duomenis.

Pagrindiniai tikslai:

  • Validacija: patikrinti, ar JSON pavyzdys atitinka tam tikrą struktūrą.
  • Dokumentacija: aprašyti JSON duomenų formatą.
  • Sąveika: metaduomenų keitimasis tarp sistemų.

JSON schemos pagrindiniai komponentai:

  • Duomenų tipai: string, number, integer, boolean, object, array, null.
  • Apribojimų pagrindiniai žodžiai:
    • type: tikėtinas duomenų tipas.
    • properties: objekto savybių aprašymas. Kiekviena savybė turi savo pogrupį.
    • required: būtinų savybių sąrašas.
    • items: masyvo elementų aprašymas.
    • minLength/maxLength: eilutės ilgumo apribojimai.
    • minimum/maximum: skaičių apribojimai.
    • pattern: reguliarios išraiškos eilutėms.
    • enum: leidžiamų reikšmių sąrašas.
    • allOf/anyOf/oneOf/not: loginės kombinacijos.
  • Metaduomenų žodžiai:
    • title: schemos trumpas pavadinimas.
    • description: išsamus schemos aprašymas.
    • default: numatytoji reikšmė.

JSON schemos pavyzdys:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unikalus naudotojo identifikatorius"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Pavyzdys JSON duomenų, kurie yra validūs pagal šią schemą:

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

Pavyzdys JSON duomenų, kurie nėra validūs pagal šią schemą:

{
  "id": "abc" // Neteisingas tipas
  // Trūksta būtiną lauką "username"
}

JSON schemos naudojimas QA automatizacijoje:

  • API atsakymų validacija: patikrinti, ar JSON atsakymai atitinka nustatytą formatą.
  • Užklausų validacija: patikrinti įeinančius JSON duomenis prieš jų apdorojimą.
  • Testų duomenų generavimas: naudoti schemą kuriant galiojančius (ar ne) testų pavyzdžius.
  • Dokumentacija: automatiškai atnaujinama API dokumentacija.

Yra bibliotekų, skirtų darbui su JSON schemomis įvairiose programavimo kalbose (pavyzdžiui, jsonschema Python, json-schema-validator Java).