JIV架构似乎失败了,不确定为什么会发生这种情况
天鹅绒方案
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Update app config Support & Ticketing",
"type": "object",
"properties": {
"servicenowEnabled": {
"type": "boolean"
},
"servicenowClientId": {
"type": "string"
},
"servicenowClientSecret": {
"type": "string"
},
"servicenowBaseUrl": {
"type": "string",
"format": "regex",
"pattern": ".*service-now.com$"
},
"servicenowKnowledgeBaseEnabled": {
"type": "boolean"
},
"servicenowKnowledgeBaseSelected": {
"type": "object",
"properties": {
"showAll": {
"type": "boolean"
},
"selectedList": {
"type": "array",
"items": {
"type": "object"
},
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
}
}
}
},
"required": [
"showAll"
],
"if": {
"properties": {
"showAll": {
"const": true
}
}
},
"then": {
"properties": {
"selectedList": {
"const": []
}
}
},
"else": {
"properties": {
"selectedList": {
"minItems": 1
}
}
}
},
"servicenowKnowledgeBaseName": {
"type": "string",
"minLength": 1
},
"servicenowKnowledgeBaseUrl": {
"type": "string",
"format": "uri"
},
"servicenowTicketsEnabled": {
"type": "boolean"
},
"servicenowTicketsName": {
"type": "string",
"minLength": 1
},
"servicenowTicketsUrl": {
"type": "string",
"format": "uri"
},
"servicenowCreateTicketsEnabled": {
"type": "boolean"
},
"servicenowNotificationEnabled": {
"type": "boolean"
}
},
"allOf": [
{
"if": {
"properties": {
"servicenowEnabled": {
"const": true
}
}
},
"then": {
"required": [
"servicenowEnabled",
"servicenowBaseUrl"
]
},
"else": {
"required": [
"servicenowEnabled"
]
}
},
{
"if": {
"properties": {
"servicenowKnowledgeBaseEnabled": {
"const": true
}
}
},
"then": {
"required": [
"servicenowKnowledgeBaseUrl",
"servicenowKnowledgeBaseName",
"servicenowKnowledgeBaseSelected"
]
},
"else": true
}
],
"additionalProperties": false
}
的测试用例失败
{
servicenowEnabled: false,
servicenowBaseUrl: 'http: //base-url.service-now.com',
servicenowClientId: 'clientID',
servicenowClientSecret: 'clientSecret'
}
我甚至try 添加Not Required而不是Else:没错,但没有效果,我也try 了几种方法,但似乎都不起作用.我只想让一个字段严格可用,否则基于其他一些布尔值