Исключить определенные значения Enum из Swagger - PullRequest
0 голосов
/ 28 февраля 2019

Я всегда добавляю значение Uninitialized ко всем моим перечислениям и устанавливаю его на 0 для обработки случаев, когда я десериализую объект, у которого значение свойства перечисления никогда не было установлено.

enum MyEnum
{
    Uninitialized = 0,
    MyEnumValue1 = 1,
    MyEnumValue2 = 2,
    MyEnumValue3 = 3,
}

Однако я не хочу, чтобы значение Uninitialized отображалось в моей документации Swagger.

Я пытался добавить атрибут [JsonIgnore] к этому значению, ноэто не сработало.

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете использовать IDocumentFilter, чтобы удалить все, что вы хотите из спецификации.

Сначала это может быть не интуитивно понятно, посмотрите на некоторые примеры, которые у них есть: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/search?q=IDocumentFilter

При этом вы можете изменить спецификацию swagger json, чтобы удалить или внедрить все, что вы хотите.
Теперь будьте осторожны, вы можете получить несоответствующую спецификацию, всегда сверяйте ее с валидатором: https://validator.swagger.io/validator/debug?url=http://swagger-net-test.azurewebsites.net/swagger/docs/V1

...