nullable поля в swagger на узле.Яш
Я потратил кучу времени, пытаясь найти решение для создания документов swagger в узле.JS. Основная библиотека-swagger-node, в которой вы создаете файл Swagger yaml, а затем добавляете в него свои контроллеры. Он автоматически предоставляет документы swagger ui в вашем приложении и выполняет проверку запроса и ответа на модели, указанные в yaml.
это аккуратно, однако у меня есть требование, чтобы некоторые поля, которые я хочу явно иметь возможность возвращать или принимать null
как значение, например:
{
id: 123,
description: "string",
date_sent: null
}
Я не хочу удалять date_sent
ключ, я хочу явно указать его как null.
спецификация swagger не поддерживает anyOf
как обычно делает это схема JSON, я считаю.
мне интересно, есть ли обходной путь? Возможно, какая-то библиотека доступна для узла, который имеет x-nullable
конкретный флаг поставщика вы можете добавить или каким-то образом указать, что все мои необязательные поля должны быть обнулены.
Я придется написать что-то самому, что берет мой файл swagger, а затем изменяет его до запуска промежуточного программного обеспечения валидатора, или есть какой-то обходной путь, который кто-то может предложить?
3 ответов
SwaggerUI не поддерживает типы nullable (см. здесь). Но я использовал свойства nullable как:
type: ['string','null']
после этого это свойство исчезает из пользовательского интерфейса, но проверка все еще работает.
nullable
поле поддерживается в спецификации OpenAPI (FKA Swagger)В3.0.0, но не в v2.0. Типы Nullable определяются следующим образом:
# Can be string or null
type: string
nullable: true
вместо добавления null в свойство типа можно использовать свойство по умолчанию.
чванство.пример определения свойства json:
"due_date": {
"type": "string",
"description": "Due date",
"default": "null"
},
это допустимое определение типа Swagger и по-прежнему отображается в пользовательском интерфейсе Swagger.