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