テンプレート api/{controller}/{action}/{id} と api/{controller}/{id} を使用して、両方のアクションを呼び出せるようにする必要がある Web API プロジェクト (C#、asp.net MVC) があります。 . これを行うために、API コントローラー用に 2 つのルートを追加しました。
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { action = @"^[a-zA-Z]+$" }
);
config.Routes.MapHttpRoute(
name: "RestFull",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
したがって、コントローラー MyController とメソッド Delete がある場合、DELETE api/MyController/Delete と DELETE api/MyController の両方を呼び出すことができます。また、自動生成された API ヘルプがあり、ルーティングの 2 番目のバリアントを追加した後、一部のメソッドがヘルプに 2 回表示されるようになりました。
私が望むのは、アクションごとに、ヘルプに参照を 1 つだけ含めることです。出来ますか?または、ルーティングに問題があり、「api/{controller}/{id}」テンプレートを使用するだけで、複数の GET/POST メソッドを使用できますか?