私は新しい Web API 2 (非常に有望に見えます) で遊んでいますが、いくつかのルートを機能させるのに少し頭が痛いです。GetAllUsers / GetUser(int id) がある場合はすべて正常に動作しますが、GetUserByName(string name) および/または GetUserByUsername(string username) を追加すると、気味が悪くなり始めます。int が最初のものであり、ルートを並べ替えることができることはわかっていますが、次のシナリオを想像してみましょう。
ユーザーは有効なusername=1234
orを持つことができname=1234
(可能性は低いと思いますが、考えられる状況を防ぐ必要があります)、データベースに有効な 1234 ID があり、すべてのルートが混同される可能性があります。
api/users/?username=1234
おそらくこれは、新しい WebAPI 2 で作業する必要があるものなので、 (GetUserByUsername) やapi/users/?name=1234
(GetUserByName )など、同じコントローラー内の異なるアクションを対象とするクエリ文字列としてフィルターを渡す「回避策」を用意できると考えました。
しかし、クエリ文字列を通過させることはできません...実際には、上記のクエリ文字列オプションはすべて、GetAllUsers によってキャッチされています。
そのシナリオの提案/修正はありますか?
どうもありがとう