Как заставить Swagger генерировать перечисление схемы модели в виде строки вместо int? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть сборка проекта Web API. NET Core 3, и мой Автозагрузка выглядит следующим образом.

services.AddControllers(o => o.EnableEndpointRouting = false)
                .AddMvcOptions(o =>
                {
                    //Add mvc options here
                })
                .AddNewtonsoftJson(o =>
                {
                    o.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                    o.SerializerSettings.Converters.Add(new StringEnumConverter());
                    o.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'";
                })
                .SetCompatibilityVersion(CompatibilityVersion.Latest);

Swagger генерирует схему как:

status  MyEnumStatusinteger($int32)
Enum:
[ 1, 2, 3]

My C# enum выглядит следующим образом:

public enum TimesheetWorkflowStatus
    {
      NotStarted = 1,
      InProgress = 2,
        Completed = 3
  }

Почему Swagger обозначает это enum как int, а не string? Я пытался использовать DescribeAllEnumsAsStrings, но он устарел. Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 01 мая 2020

Я разобрался с решением здесь . Мне пришлось добавить services.AddSwaggerGenNewtonsoftSupport() вместе с services.AddSwaggerGen(), чтобы все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...