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