Web API 2 / MVC 5: Маршрутизация атрибутов, передающая параметры в виде строки запроса для назначения различных действий на одном контроллере
Я играл с новым Web API 2 (который, между прочим, выглядит многообещающе), но у меня немного болит голова, чтобы заставить работать некоторые маршруты. Все работает нормально, когда у меня есть GetAllUsers / GetUser (int id), но потом, когда я добавляю GetUserByName (имя строки) и / или GetUserByUsername (имя пользователя строки), все становится жутко. Я знаю, что int будет первым, и я могу изменить порядок маршрутов, но давайте представим следующий сценарий:
Пользователь может иметь действительныйusername=1234
или жеname=1234
(Я знаю, что это маловероятно, но мы должны предотвратить любую возможную ситуацию), и у нас может быть действительный идентификатор 1234 в базе данных, и все маршруты будут перепутаны.
Может быть, это то, с чем нам нужно будет работать в новом WebAPI 2, поэтому я подумал, что мог бы использовать «обходной путь», передающий фильтры в виде строк запросов для нацеливания на разные действия в одном контроллере, напримерapi/users/?username=1234
(GetUserByUsername) илиapi/users/?name=1234
(GetUserByName)
Но я не могу сделать так, чтобы строки запросов проходили ... фактически любой параметр строки запроса, описанный выше, попадает в GetAllUsers.
У кого-нибудь есть какие-либо предложения / исправления для этого сценария?
большое спасибо