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).