私は自分の Asp.Net WebApi 4.0 プロジェクトに swagger-ui (バージョン 2.0) を統合しています。これは私のルート構成です:
config.Routes.MapHttpRoute(
name: "Common_Get",
routeTemplate: "common/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional, action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
config.Routes.MapHttpRoute(
name: "Active_Get",
routeTemplate: "active/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional, action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("GET") }
);
また、swagger-ui 生成ドキュメントには重複した項目が含まれています。同じコントローラー+アクションがあります。このようにcommon
:active
get /common/Advert/GetAdvertise/{id}
get /active/Advert/GetAdvertise/{id}
get /common/award/GetAward/{id}
get /active/award/GetAward/{id}
この問題を回避する方法、またはswaggerサポート領域を有効にする方法(名前は何でも)。各コントローラーの領域を指定できます。正しい結果は次のようになります。
get /common/Advert/GetAdvertise/{id}
get /active/Award/GetAward/{id}