Sono un noob in giapponese. Durante la definizione del formato del risultato del mio RESTful API (JSON), ho pensato che sarebbe stato più semplice documentarlo come il mio JSON schema. Durante la scrittura di uno ho avuto alcune domande:Alcune domande relative allo schema json personalizzato
- Nel mio risultato JSON, come si specifica l'URI allo schema a cui conferma? --edit-- sta usando l'attributo
$schema
? - Esistono convenzioni/linee guida per il controllo delle versioni dello schema JSON? Ci sono alcuni attributi che dovrei/posso definire all'interno del mio schema come attributi? Vedo che JSON schema itself non ha alcuna versione definita tranne nel suo URI specificato come valore della chiave
$schema
. - Posso analizzare il mio schema BIG JSON in più di uno più piccolo e includerne uno in un altro? Come #include in C++, quindi fai riferimento a più schemi nel JSON che ho inviato all'utente come risultato.
- Posso definire un valore personalizzato per il tasto "tipo"? Per esempio. Vorrei riutilizzare la definizione di "data" come questo:
[ignorare questa linea, è di ottenere la formattazione di lavoro per seguire JSON ..]
{
"date":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
},
"personInfo":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"dateOfBirth":{
"type":"date"
}
}
},
"student":{
"type":"object",
"properties":{
"id":{
"type":"personInfo"
},
"pass_out_year":{
"type":"date"
}
}
}
}
invece di fornire proprietà della " data" in luoghi multipli come questo:
{
"personInfo":{
"type":"object",
"properties":{
"name":{
"type":"string"
},
"dateOfBirth":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
}
}
},
"student":{
"type":"object",
"properties":{
"id":{
"type":"personInfo"
},
"pass_out_year":{
"type":"object",
"properties":{
"month":{
"type":"integer",
"minimum":1,
"maximum":12
},
"year":{
"type":"integer",
"minimum":0
}
}
}
}
}
}
in base al tipo 5.1 in the spec, non è possibile, ma sembra un caso d'uso come base!
sembra troppo lavoro, quindi non lo farò. Ma sì, un'opzione fattibile, specialmente nel tech-env di oggi sono sicuro di trovare strumenti per farlo in qualsiasi lingua/ambiente. Grazie. – Kashyap
Nella v4 dello schema JSON questo non sembra più permesso: http://json-schema.org/latest/json-schema-validation.html#anchor79 – Mitar