Я работаю с jsonschema для Python и пытаюсь разрешить любое из следующего:
{}
# or
{
'id': 'd6a4def3-4a6a-4fb4-a38e-f98ea48f708a'
}
# or
{
'status': 'Done'
}
, но я не хочу разрешать следующее, поскольку оба поля указаны:
{
'id': 'd6a4def3-4a6a-4fb4-a38e-f98ea48f708a',
'status': 'Done'
}
Это то, что у меня есть, которое позволяет предоставлять одно или другое поле так, как я хочу, но ничего не позволяет.
GET_CALL = {
"type": "object",
"additionalProperties": False,
"properties": {
"id": {
"type": "string",
"pattern": REGEX_EXPRESSIONS['UUID4'], # Matches a UUID4 format
},
"status": {
"type": "string",
"enum": ["Done", "Ready"],
},
},
"oneOf": [ # This makes it so I can only have one or the other but it doesn't allow nothing.
{"required": ["id"]},
{"required": ["status"]}
],
}