Sobes.tech
Junior

Шта је JSON шема?

sobes.tech АИ

Одговор од АИ

JSON-шема (JSON Schema) — то лексички стандард заснован на JSON-у за описивање структуре и ограничења података у формату JSON. Омогућава валидацију, описивање и документовање JSON података.

Главни циљеви:

  • Валидација: Провера да ли пример JSON одговара одређеној структури.
  • Документација: Опис формата JSON података.
  • Интеракција: Размена метаподатака између система.

Кључне компоненте JSON-шеме:

  • Типови података: string, number, integer, boolean, object, array, null.
  • Кључне речи за ограничења:
    • type: Очекујени тип података.
    • properties: Опис својстава објекта. Свако својство има своју под-шему.
    • required: Листа обавезних својстава за објекат.
    • items: Опис елемената низа.
    • minLength/maxLength: Ограничења дужине за низове.
    • minimum/maximum: Ограничења за бројеве.
    • pattern: Регуларни израз за низ.
    • enum: Листа дозвољених вредности.
    • allOf/anyOf/oneOf/not: Логичке комбинације шема.
  • Кључне речи за метаподатке:
    • title: Кратки назив шеме.
    • description: Детаљан опис шеме.
    • default: Вредност по подразумевану.

Пример JSON-шеме:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Јединствени идентификатор корисника"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Пример JSON података који су валидни по овој шеми:

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

Пример JSON података који нису валидни по овој шеми:

{
  "id": "abc" // Невалидан тип
  // Недостаје обавезно поље "username"
}

Користињење JSON-шеме у QA аутоматизацији:

  • Валидација одговора API: Провера да ли JSON одговори одговарају задатом формату.
  • Валидација захтева: Провера улазећих JSON података пре њихове обраде.
  • Генерација тест података: Коришћење шеме за креирање валидних (или невалидних) тест примера.
  • Документација: Аутоматски одржавана документација за API.

Постоје библиотеке за рад са JSON-шемама на различитим програмским језицима (нпр. jsonschema за Python, json-schema-validator за Java).