Sobes.tech
Junior

Mis on JSON skeem?

sobes.tech AI

Vastus AI-lt

JSON skeem (JSON Schema) — see on leksiline standard, mis põhineb JSON-il ja mille eesmärk on kirjeldada andmestruktuuri ja piiranguid JSON-formaadis. See võimaldab valideerida, kirjeldada ja dokumenteerida JSON-andmeid.

Peamised eesmärgid:

  • Valideerimine: kontrollida, kas JSON-i näide vastab määratletud struktuurile.
  • Dokumenteerimine: kirjeldada JSON-andmete formaati.
  • Koostoime: metaandmete vahetamine süsteemide vahel.

JSON skeemi põhikomponendid:

  • Andmetüübid: string, number, integer, boolean, object, array, null.
  • Piirangute põhivõtmed:
    • type: oodatav andmetüüp.
    • properties: objekti omaduste kirjeldus. Igal omadusel on oma alam skeem.
    • required: nõutavate omaduste nimekiri.
    • items: massiivi elementide kirjeldus.
    • minLength/maxLength: stringide pikkuse piirangud.
    • minimum/maximum: arvude piirangud.
    • pattern: regulaaravaldis stringidele.
    • enum: lubatud väärtuste nimekiri.
    • allOf/anyOf/oneOf/not: loogilised kombinatsioonid skeemidele.
  • Metaandmete põhivõtmed:
    • title: skeemi lühinimi.
    • description: skeemi üksikasjalik kirjeldus.
    • default: vaikimisi väärtus.

JSON skeemi näide:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Kasutaja unikaalne identifikaator"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Näide JSON-andmetest, mis on selle skeemi järgi kehtivad:

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

Näide JSON-andmetest, mis ei ole selle skeemi järgi kehtivad:

{
  "id": "abc" // Ebaõige tüüp
  // Kohustuslik väli "username" puudub
}

JSON skeemi kasutamine QA automatiseerimises:

  • API vastuste valideerimine: kontrollida, kas JSON-vastused vastavad määratletud formaadile.
  • Nõuete valideerimine: kontrollida sisenevaid JSON-andmeid enne nende töötlemist.
  • Testandmete genereerimine: kasutada skeemi, et luua kehtivaid (või kehtetuid) testnäiteid.
  • Dokumentatsioon: automaatselt uuendatav API dokumentatsioon.

On olemas teeke, mis töötavad erinevates programmeerimiskeeltes JSON skeemidega (näiteks jsonschema Pythonile, json-schema-validator Javal).