C # Swagger Generation для enum со значением по умолчанию - PullRequest
2 голосов
/ 17 мая 2019

У меня API выглядит следующим образом:

public Task<IActionResult> GetAsync([FromRoute] string id, [FromQuery] Query select = Query.All)

Для запросов мы хотим разрешить только определенные свойства, перечисленные в перечислении запросов, как показано ниже:

    public enum Query
    {
        All,
        Property1,
        Property2
    }

Я добавил

 services.AddSwaggerGen(c =>{c.DescribeAllEnumsAsStrings();})

в файле startup.cs, но это не работает для значения по умолчанию, я получаю следующий сгенерированный swagger, значение по умолчанию 0 вместо строки:

     {
        "name": "selec",
        "in": "query",
        "description": "",
        "required": false,
        "type": "string",
        "default": 0, //NOT SHOWN AS STRING
        "enum": [
          "none",
          "property1",
          "property2"
        ]
      },

Как сделать так, чтобы значение по умолчанию отображалось в виде строки?

1 Ответ

2 голосов
/ 17 мая 2019

Ваш проект автоматически десериализуется в соответствии с настройками сериализации вашего приложения. Обходной путь - добавить тег, который изменяет сериализацию этого конкретного свойства

[JsonConverter(typeof(StringEnumConverter))]
...