Swagger-ui не генерирует правильную строку запроса

#c# #swagger #asp.net-core-webapi #swagger-ui #swashbuckle

#c# #swagger #asp.net-core-webapi #swagger-ui #swashbuckle

Вопрос:

Я пытаюсь создать asp.net основной веб-api для приема строки запроса словаря с пользовательским типом в качестве значения (например, Dictionary<string, User>). Я сгенерировал пример веб-api по умолчанию с использованием Visual studio 2019 и имею следующее:

  • Установил Swashbuckle 5.5.0 и настроил необходимые вызовы SwaggerGen, UseSwagger, SwaggerUI
 public class User 
{
  public string Name { get; set;}
}

[HttpGet]
public IEnumerable<WeatherForecast> Get([FromQuery] Dictionary<string, User> users)
{
  // do something
}
  

Запуск через swagger-ui и выбор опции «опробовать» выдает следующую строку запроса:

 https://localhost:44396/WeatherForecast?additionalProp1[name]=string
  

В отладчике создается:
отладчик

Если я изменю строку запроса на:

 https://localhost:44396/WeatherForecast?users[additionalProp1].name=string
  

Я получаю значение в заданном словаре:
отладчик часть 2

Итак, вопрос в том, что мне нужно сообщить Swagger для создания правильной строки запроса в swagger-ui?