格式化规则
架构编辑器应遵循 JSON 格式设置规则,如下所述:
- 到处使用骆驼大小写符号
- 在打开大括号 [] 之后,在关闭大括号之前,以及当对象具有多个属性或单个对象/数组属性时,使用新行
- 使用前大括号 [] 之后的空间,在关闭大括号之前,以及当对象具有不是对象/数组的单个属性时。这在处理大量引用或基元类型属性时很有用,并允许更好的可读性。
- 使用冒号后的空间 :
- 不要在冒号前使用空格:
- 在阵列打开支架 [ 和数组右括号之前] 使用新行
- 在逗号后使用新行 ,
- 不要在逗号之前使用空格 ,
- 始终在对象大括号 [和数组大括号] 中使用缩进
- 使用 4 个空格进行缩进(而不是制表符)
下面是一个架构的示例,由这些规则格式化:
{
"title": "Base schema",
"type": "object",
"properties": {
"a": { "type": "string" },
"b": {
"type": "integer",
"maximum": 50
},
"c": {
"type": "object",
"properties": {
"x": { "type": "number" },
"y": { "type": "string" }
}
},
"d": { "$ref": "#/RefType" },
"e": {
"code": {
"enum": [
"create",
"update",
"delete",
"void"
]
}
}
}
}
对于数组,我们将采用类似的方法,并允许单个值保持在同一行:
"必需": [ "值"
定位
使用本地化架构作为基(XSD)/扩展(JSON架构)。
JSON 架构:
"Localization": {
"title": "Localization",
"description": "Can be used for any entity to specify localization language code",
"type": "object",
"properties": {
"lang": { "$ref": "codelist#/LanguageCodeList" }
}
}
在需要本地化的任何其他架构中,只需使用"allOf"来包括此架构:
"SomeSchema" : {
"allOf": [
{ "$ref": "common/basic#/Localization" }
]
}
默认情况下,进一步的核心类型"NameType"和"TextType"功能本地化,可用于需要多个语言字符串的地方。
多次发生
当结构需要多次出现时,始终使用数组。