Как создать .NET-вызов веб-службы, который принимает списокв качестве входного параметра? - PullRequest
0 голосов
/ 06 июня 2018

Я определяю веб-сервис .Net, используя .net-core 2.0 и инфраструктуру Swagger.

Я хочу иметь возможность определить вызов веб-сервиса, который принимает массив целых чисел.

Рассмотрим следующее определение:

[HttpGet("UserRecords/{userIds}")]
public IEnumerable<UserRecord> GetUsers(List<Int64> userIds)
{
}

Это компилируется и успешно выполняется.Но когда я проверяю параметр userIds, это список нулевой длины.

Я знаю, что обходной путь - передать userIds в виде списка с разделителями-запятыми и затем восстановить коллекцию.

Можеткто-то, пожалуйста, посоветуйте мне, как правильно написать это определение, используя массив или List<>?

Спасибо, JohnB

1 Ответ

0 голосов
/ 06 июня 2018

Невозможно получить список идентификаторов пользователей как часть пути URL.Попробуйте этот код:

[HttpGet("UserRecords/multipleUserIds")]
public IEnumerable<UserRecord> GetUsers([FromQuery] List<int> userIds)
{
}

Чем URL будет что-то вроде http://localhost:5000/UserRecords/multipleUserIds?userIds=1&userIds3

...