Я пытаюсь запустить существующую схему OpenAPI через Open API Enforcer , и я получаю различные ошибки проверки при использовании allOf. Одно из таких применений описано ниже:
Рассмотрим следующее свойство в схеме:
queryVersion:
allOf:
- $ref: 'VersionDefinition.yaml'
- description: >-
This is my overriding version
VersionDefinition.yaml определяется следующим образом:
description: >-
Some default version description.
type: string
default: '5.2'
Существует два проблемы с приведенным выше определением:
OpenAPI Enforcer ожидает, что все схемы, определенные в ключевом слове allOf или аналогичном, начнутся с определения типа. Итак, ошибка, которую он выдает:
at: queryVersion> allOf> 1 Отсутствует обязательное свойство: тип
Я исправляю это, изменяя определение allOf следующим образом:
queryVersion:
allOf:
- $ref: 'VersionDefinition.yaml'
- type : object
properties:
- description: >-
This is my overriding version
Это устраняет ошибку, но что я должен ожидать увидеть в сгенерированной схеме? Оригинальный автор указывает, что он использует allOf для переопределения описания свойства. Однако сгенерированная схема содержит следующий результат:
"queryVersion": {
"allOf": [
{
"description": "Some default version description",
"type": "string",
"default": "5.2"
},
{
"type": "object",
"properties": [
{
"description": "This is my overriding version"
}
]
}
]
}
То, что я ожидал увидеть, было:
"queryVersion": {
"description": "This is my overriding version",
"type": "string",
"default": "5.2"
}
Я продолжу копать, но есть идеи?