1

OWIN ミドルウェアを介してホストされている Web API 2 プロジェクトがあります。すべてが完全に正常に機能し、期待どおりに API を呼び出すことができます。しかし、私の WebApiConfig はデフォルト ルートを次のように定義します。

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

したがって、次のような URL を使用して API を呼び出す必要があります。/api/values/dosomething

API を文書化することを決定するまで、これはうまくいきました。そのために、最初にWebAPI ヘルプ ページ パッケージを使用してみましたが、うまくいきませんでした。次に、 Swashbuckle Swaggerを試してみて、それが問題を完全に回避するのに役立つかどうかを確認する必要があると考えましたが、残念ながら、どちらの場合も同じエラーが発生しました。

ルート テンプレートの区切り文字 '/' を連続して使用することはできません。パラメータまたはリテラル値で区切る必要があります。パラメータ名: routeTemplate

いくつかのことを試した後、ルート テンプレートを変更して{action}パーツを削除すると、エラーがなくなることがわかりました。しかし、プロジェクト全体で URL にアクション メソッド名が含まれていると想定されているため、実際にはそうすることができません。

とにかく、私は次のことを知りたいです:

  1. そもそもなんでこんなことになってるの?
  2. この動作を変更する方法はありますか?

前もって感謝します!

4

1 に答える 1