1

テンプレート 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 メソッドを使用できますか?

4

1 に答える 1

1

ここでのキーワードは、「自動生成」API ヘルプです。ルートが 2 つあるため、ヘルプには両方がリストされます。これを回避する唯一の方法は、自動生成されたヘルプを使用しないことです。しかし、何かを行うルートが 2 つある場合は、両方を文書化する必要があります。

于 2013-11-07T15:06:18.687 に答える