Vai al contenuto principale
CuteJSON
↑↓ Naviga Enter Seleziona Esc Chiudi

Come generare un JSON Schema da un campione reale

Pubblicato 2 min di lettura Di Akash Kinkar Pandey

Uno schema generato da un documento campione descrive cosa c'era nel campione. E un punto di partenza, non una specifica imposta da qualche altra parte, e questo strumento e costruito trattandolo in quel modo invece di suggerire più certezza di quanto i dati supportino effettivamente.

Usare il generatore di JSON Schema

Incolla un documento, o un array di più record, scegli una bozza (2020-12 o Draft 07), se rilevare i formati delle stringhe, e se contrassegnare le chiavi obbligatorie, poi premi Genera schema.

Dato

[
  {"id": 1, "name": "a", "score": 1},
  {"id": 2, "name": "b", "score": 1.5}
]

entrambi i record portano id, name e score, quindi tutti e tre appaiono in required. id e un numero intero in ogni record e diventa "integer". score ha una frazione nel secondo record, 1.5, quindi il suo tipo e il più ampio "number" invece di "integer", poiche contiene effettivamente valori non interi.

Perche una chiave può silenziosamente uscire da required

Aggiungi un terzo record, {"id": 3, "name": "c"}, senza campo score, e rigenera: score non è più obbligatorio, mentre id e name rimangono obbligatori. Una chiave viene contrassegnata obbligatoria solo quando ogni singolo record nell'array la porta. Un record che manca di un campo non prova che il campo è opzionale in tutta la tua API, ma prova che lo schema non può onestamente promettere che sarà sempre lì, quindi diventa opzionale. Questa è la regola che la FAQ nella pagina dichiara direttamente, poiché è il dettaglio che più probabilmente sorprenderà qualcuno che legge il risultato.

Rilevamento del formato

Un formato delle stringhe come una data o un indirizzo email viene affermato solo quando ogni stringhe in quella posizione in ogni record corrisponde allo stesso pattern. Questo è ciò che impedisce a un valore fortunato di trasformare un campo genuinamente di testo libero in qualcosa che sembra un formato di data rigoroso, che rifiuterebbe poi dati reali e validi nel momento in cui vedrebbe un valore che non era effettivamente una data.

Cosa non può sapere

Il generatore ha solo i record che hai incollato. Non può vedere i record che non hai incollato, quindi un campo che è sempre stato un numero positivo nel tuo campione non tornerà con un minimum a meno che non ne aggiungi uno tu stesso, e un campo tipo enum non diventerà una parola chiave enum a meno che non la aggiungi. Tratta l'output come la forma che il tuo campione prova, e allargala manualmente dove sai che i dati reali sono più rilassati.

Controllare il risultato

Incolla lo schema generato e un documento nel validatore JSON Schema per vedere se accetta effettivamente il tipo di documenti che ti aspetti.

Torna a tutti i post