Sobes.tech
Junior

Cos'è uno schema JSON?

sobes.tech AI

Risposta dell'AI

Lo schema JSON (JSON Schema) è uno standard lessicale basato su JSON per descrivere la struttura e le restrizioni dei dati in formato JSON. Permette di validare, descrivere e documentare i dati JSON.

Obiettivi principali:

  • Validazione: Verificare che un'istanza JSON rispetti una determinata struttura.
  • Documentazione: Descrivere il formato dei dati JSON.
  • Interazione: Scambio di metadati tra sistemi.

Componenti chiave dello schema JSON:

  • Tipi di dati: string, number, integer, boolean, object, array, null.
  • Parole chiave per le restrizioni:
    • type: Tipo di dato atteso.
    • properties: Descrizione delle proprietà di un oggetto. Ogni proprietà ha il suo sotto-schema.
    • required: Lista delle proprietà obbligatorie.
    • items: Descrizione degli elementi di un array.
    • minLength/maxLength: Restrizioni sulla lunghezza delle stringhe.
    • minimum/maximum: Restrizioni sui numeri.
    • pattern: Espressione regolare per le stringhe.
    • enum: Lista dei valori ammessi.
    • allOf/anyOf/oneOf/not: Combinazioni logiche di schemi.
  • Parole chiave per i metadati:
    • title: Titolo breve dello schema.
    • description: Descrizione dettagliata dello schema.
    • default: Valore di default.

Esempio di schema JSON:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Identificatore unico dell'utente"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Esempio di dati JSON validi secondo questo schema:

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

Esempio di dati JSON non validi secondo questo schema:

{
  "id": "abc" // Tipo errato
  // Campo obbligatorio "username" mancante
}

Utilizzo dello schema JSON in QA Automation:

  • Validazione delle risposte API: Verificare se le risposte JSON rispettano il formato.
  • Validazione delle richieste: Verificare i dati JSON in ingresso prima dell'elaborazione.
  • Generazione di dati di test: Usare lo schema per creare esempi validi (o non validi).
  • Documentazione: Creare documentazione API mantenuta automaticamente.

Esistono librerie per lavorare con gli schemi JSON in diversi linguaggi di programmazione (ad esempio, jsonschema per Python, json-schema-validator per Java).