在json模式中,我可以简单地使用"enum";带有可用代码列表,例如:
{
"type": "object",
"properties": {
"group": {
"type":"string",
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": ["A","B"]
}
}
}
以下有效载荷有效:
{
"group": "B"
}
然而,我试图向用户提供模式中的描述,其中";A〃="组A"B〃="组B";。类似于:
{
"type": "object",
"properties": {
"group": {
"type":"string",
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": [
{"code":"A",
"description": "Group A"
},
{"code":"B",
"description": "Group B"
}
]
}
}
}
但我不想改变有效载荷的结构(不需要"描述"字段(该描述更多地用于文档目的,用户可以参考。有什么好的做法可以在这里使用吗?
谢谢
您可以将anyOf
与const
一起使用,而不是使用enum
。然后您可以使用title
或description
进行文档编制。
{
"anyOf": [
{
"const": "A",
"title": "Group A"
},
{
"const": "B",
"title": "Group B"
}
]
}
这取决于您的工具链。例如,jsonschema2md允许使用meta:enum
属性进行描述:
{
"type": "object",
"properties": {
"group": {
"type":"string",
"$ref": "#/definitions/Group"
}
},
"definitions": {
"Group": {
"enum": ["A", "B"],
"meta:enum": {
"A": "Group A",
"B": "Group B"
}
}
}
}