Sobes.tech
Junior

Kas ir JSON shēma?

sobes.tech AI

Atbilde no AI

JSON shēma (JSON Schema) — tas ir leksisks standarts, kas balstīts uz JSON, lai aprakstītu datu struktūru un ierobežojumus JSON formātā. Tas ļauj validēt, aprakstīt un dokumentēt JSON datus.

Galvenie mērķi:

  • Validācija: pārbaudīt, vai JSON piemērs atbilst noteiktai struktūrai.
  • Dokumentācija: aprakstīt JSON datu formātu.
  • Sadarbība: metadatu apmaiņa starp sistēmām.

JSON shēmas galvenās sastāvdaļas:

  • Datu tipi: string, number, integer, boolean, object, array, null.
  • Ierobežojumu galvenie vārdi:
    • type: gaidāmais datu tips.
    • properties: objekta īpašību apraksts. Katrai īpašībai ir savs apakšshēma.
    • required: obligāto īpašību saraksts.
    • items: masīva elementu apraksts.
    • minLength/maxLength: virkņu garuma ierobežojumi.
    • minimum/maximum: skaitļu ierobežojumi.
    • pattern: regulārs izteiciens virknei.
    • enum: atļauto vērtību saraksts.
    • allOf/anyOf/oneOf/not: loģiskās kombinācijas.
  • Metadatu galvenie vārdi:
    • title: shēmas īss nosaukums.
    • description: shēmas detalizēts apraksts.
    • default: noklusējuma vērtība.

JSON shēmas piemērs:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Lietotāja unikālais identifikators"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Derīgi JSON dati pēc šīs shēmas:

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

Nederīgi JSON dati pēc šīs shēmas:

{
  "id": "abc" // Nederīgs tips
  // Trūkst obligātais lauks "username"
}

JSON shēmas izmantošana QA automatizācijā:

  • API atbilžu validācija: pārbaudīt, vai JSON atbildes atbilst noteiktajam formātam.
  • Pieprasījumu validācija: pārbaudīt ienākošos JSON datus pirms to apstrādes.
  • Testu datu ģenerēšana: izmantot shēmu, lai izveidotu derīgus (vai nederīgus) testu piemērus.
  • Dokumentācija: automātiski atjaunināma API dokumentācija.

Ir bibliotēkas, kas paredzētas darbam ar JSON shēmām dažādās programmēšanas valodās (piemēram, jsonschema Python, json-schema-validator Java).