Web API 2 / MVC 5: Atributo Roteando parâmetros de passagem como querystring para direcionar ações diferentes no mesmo controlador

Eu tenho jogado com a nova Web API 2 (que parece muito promissora), mas estou tendo um pouco de dor de cabeça para conseguir algumas rotas funcionando. Tudo funciona bem quando eu tenho GetAllUsers / GetUser (int id), mas quando eu adiciono GetUserByName (nome da string) e / ou GetUserByUsername (string username) as coisas começam a ficar assustadoras. Eu sei que o int será o primeiro e que eu posso reordenar as rotas, mas vamos imaginar o seguinte cenário:

Um usuário pode ter uma validadeusername=1234 ouname=1234 (Eu sei que é improvável, mas precisamos evitar qualquer situação possível) e podemos ter um ID 1234 válido no banco de dados e todas as rotas serão misturadas.

Talvez isso seja algo com o qual precisaremos trabalhar no novo WebAPI 2, por isso achei que poderia vir com uma "solução alternativa" passando filtros como querystrings para direcionar ações diferentes no mesmo controlador, comoapi/users/?username=1234 (GetUserByUsername) ouapi/users/?name=1234 (GetUserByName)

Mas eu não posso fazer querystrings para vir através de ... na verdade, qualquer opção querystring acima está sendo pego pelo GetAllUsers.

Alguém tem alguma sugestão / correção para esse cenário?

Muito obrigado

questionAnswers(1)

yourAnswerToTheQuestion