Как сохранить как [обязательные], так и свойства, допускающие значение NULL, в выводе схемы Swashbuckle?C#

Место общения программистов C#
Ответить
Anonymous
 Как сохранить как [обязательные], так и свойства, допускающие значение NULL, в выводе схемы Swashbuckle?

Сообщение Anonymous »

У меня есть класс DTO, определенный следующим образом:

Код: Выделить всё

public class QuantityDto
{
[Required]
public decimal? Value { get; set; }

[Required]
public string? Unit { get; set; }
}
Моя цель — поддерживать как атрибут проверки [Required] (в соответствии с требованиями проекта), так и типы свойств, допускающие значение NULL, в сгенерированной схеме OpenAPI/Swagger с помощью Swashbuckle.
В настоящее время Swashbuckle выдает следующий вывод для этого класса:

Код: Выделить всё

"QuantityDto": {
"required": [
"unit",
"value"
],
"type": "object",
"properties": {
"value": {
"type": "number",
"format": "double"
},
"unit": {
"minLength": 1,
"type": "string"
}
},
"additionalProperties": false
}
Однако мне нужно, чтобы схема отражала тот факт, что эти свойства допускают значение NULL (например, для указания значения NULL: true), сохраняя при этом обязательный атрибут для проверки.
Я понимаю, что [Required] обычно не рекомендуется для типов, допускающих значение NULL, но из-за ограничений проекта я не могу изменить этот подход.
Есть ли вариант или обходной путь в Swashbuckle для создания схемы, которая помечает свойства как обязательные и допускающие значение NULL, или иным образом точно представляет этот сценарий?
Я пробовал просматривать параметры создания схемы и экспериментировать с пользовательскими фильтрами схемы, но пока не нашел подходящего решения.
Будем очень благодарны за любую информацию или рекомендуемый подход!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -schema-ou
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»