WebAPI プロジェクトに News というコントローラーがあり、次の URL を処理する Get という 2 つの既定のアクションがあります。
/api/News <- これはニュースのリストを返します /api/News/123 <- これは ID によって特定のニュース項目を返します。
これまでのところすべて簡単で、明らかにデフォルト ルートがこれらのシナリオを処理します。次に、次のような URL が必要です。
/api/News/123/Artists <- 指定されたニュース項目に関連するすべてのアーティストを返します。
今、私は ASP.Net MVC と WebAPI についてかなりニュースになっているので、ルーティングに対処しなければならなかったのはこれが初めてです。デフォルトルートを次のように変更しました。
routes.MapRoute(
name: "Default",
url: "{controller}/{id}/{action}",
defaults: new { controller = "News", action = "Get", id = UrlParameter.Optional }
そのため、ここでは {action} を URL の末尾に移動し、Artists メソッドを News コントローラーに追加しました。これは最初の 2 つのシナリオでは機能しますが、3 番目のシナリオでは 404 を返します。
/api/News/123/Artists のルーティングが機能していないことは明らかですが、その理由はわかりません。
このようにWebAPIを使用している人々の例を見つけることができないようで、根本的に間違ったことをしていると思います。
どんな助けでも大歓迎です。