Пример в реальной жизни: сложная база данных, которая должна отображаться на веб-сайте. Поскольку база данных была спроектирована где-то около 1986 года (!), Многие данные были упакованы по-разному, чтобы сэкономить место на диске.
По мере развития разработчики больше не могли решать сложные запросы данных только в SQL, например, потому что алгоритмы сортировки были необычными.
Существует три разумных решения:
CGI запускает ваш скрипт в решении №3 и выводит эффект в браузер. У вас есть скорость скомпилированной программы, гибкость языка лучше, чем SQL, и нет необходимости писать плагины на SQL-сервер. (Опять же, это пример, специфичный для SQL и C)
Вы можете достичь этого, используя ключевое слово anyOf
и definitions
/ $ref
, чтобы избежать дублирования.
{
"type": "object",
"properties": {
"assetMetadata": {
"anyOf": [
{ "$ref": "#/definitions/assetMetaData" },
{
"type": "array",
"description": "...",
"items": { "#/definitions/assetMetaData" }
}
]
}
},
"definitions": {
"assetMetadata": {
"type": "object",
"additionalProperties": false,
"properties": { ... }
}
}
}