Sobes.tech
Junior

Czym jest schemat JSON?

sobes.tech AI

Odpowiedź od AI

Schemat JSON (JSON Schema) to leksykalny standard oparty na JSON do opisywania struktury i ograniczeń danych w formacie JSON. Umożliwia walidację, opis i dokumentację danych JSON.

Główne cele:

  • Walidacja: Sprawdzanie, czy instancja JSON spełnia określoną strukturę.
  • Dokumentacja: Opis formatu danych JSON.
  • Interakcja: Wymiana metadanych między systemami.

Kluczowe składniki schematu JSON:

  • Typy danych: string, number, integer, boolean, object, array, null.
  • Słowa kluczowe dla ograniczeń:
    • type: Oczekiwany typ danych.
    • properties: Opis właściwości obiektu. Każda właściwość ma własny pod-schemat.
    • required: Lista obowiązkowych właściwości.
    • items: Opis elementów tablicy.
    • minLength/maxLength: Ograniczenia długości dla łańcuchów.
    • minimum/maximum: Ograniczenia dla liczb.
    • pattern: Wyrażenie regularne dla łańcuchów.
    • enum: Lista dozwolonych wartości.
    • allOf/anyOf/oneOf/not: Logiczne kombinacje schematów.
  • Słowa kluczowe dla metadanych:
    • title: Krótka nazwa schematu.
    • description: Szczegółowy opis schematu.
    • default: Domyślna wartość.

Przykład schematu JSON:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Unikalny identyfikator użytkownika"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Przykład poprawnych danych JSON zgodnych z tym schematem:

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

Przykład niepoprawnych danych JSON:

{
  "id": "abc" // Niepoprawny typ
  // Brak obowiązkowego pola "username"
}

Użycie schematu JSON w QA Automation:

  • Walidacja odpowiedzi API: Sprawdzanie, czy odpowiedzi JSON są zgodne z formatem.
  • Walidacja żądań: Sprawdzanie danych JSON przychodzących przed ich przetwarzaniem.
  • Generowanie danych testowych: Użycie schematu do tworzenia poprawnych (lub niepoprawnych) przykładów.
  • Dokumentacja: Tworzenie automatycznie utrzymywanej dokumentacji API.

Istnieją biblioteki do pracy ze schematami JSON w różnych językach programowania (np. jsonschema dla Pythona, json-schema-validator dla Javy).