WebAPI アプリケーションにバージョン管理フレームワークを実装しましたが、Microsoft の新しいヘルプ ページ拡張機能と連動させたいと考えています。
Microsoft.AspNet.WebApi.HelpPage
簡単に言えば、両方を連携させる方法がわかりません。私は2つのプロジェクトを持っています:
- AdventureWorks.Api (メイン ホスト/ルート アプリケーション)
- AdventureWorks.Api.v1 (API の最初のバージョンを含むクラス ライブラリ)
バージョン管理は期待どおりに機能します。
ルート アプリケーションに HelpPage パッケージをインストールしようとしましたが、ヘルプ ページを参照すると、コントローラーが見つからないように見えます。内部的には、次を使用していると思います:
Configuration.Services.GetApiExplorer().ApiDescriptions
これは結果を返さないため、エラーが発生します。
これらのパッケージの両方を連携させるのを手伝ってくれる人はいますか?
編集: 最初は、これがルーティングの問題であるかどうか確信が持てませんでしたが、最近のコメントは別のことを示唆しているようです。ここに私のRouteConfig.csがあります
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "SldExportAliasApi",
routeTemplate: "api/v{version}/sld-export/{id}",
defaults: new { id = RouteParameter.Optional, controller = "Export" }
);
routes.MapHttpRoute(
name: "LinkRoute",
routeTemplate: "api/v{version}/link/{system}/{deployment}/{view}",
defaults: new { controller = "Link" }
);
routes.MapHttpRoute(
name: "DefaultSubParameterApi",
routeTemplate: "api/v{version}/{controller}/{id}/{param}",
defaults: new { id = RouteParameter.Optional, param = RouteParameter.Optional }
);
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v{version}/{controller}/{action}/{id}",
defaults: new { action = "Index", id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}