ASP.NET Core 1.0 は APIExplorer の使用をサポートしていますか? ドキュメントや使用方法を見つけることができません。誰かがそれを使用していて、洞察を共有できますか?
2 に答える
Itay の応答は、私が望んでいた答えを得るのに少し役立ちました。
ApiExplorer を使用する必要がある他の人のために、Rob Lang 博士はHow to get list of all routes in ASP.NET Core? への回答を書きました。.
簡単に言えば、ルートを取得するには、コンストラクター注入を使用して IApiDescriptionGroupCollectionProvider をコントローラーに注入します。次に、ApiDescriptionGroupCollectionProvider.ApiDescriptionGroups.Items でルートを受け取ります。ルートは、ApiExplorer に表示されるようにマークした場合にのみ表示されます。これは、コントローラーごとに、または規則を使用して行うことができます。すべてのコントローラーで使用したいので、IApplicationModelConvention を使用しました。
public class ApiExplorerVisibilityEnabledConvention : IApplicationModelConvention { public void Apply(ApplicationModel application) { foreach (var controller in application.Controllers) { if (controller.ApiExplorer.IsVisible == null) { controller.ApiExplorer.IsVisible = true; controller.ApiExplorer.GroupName = controller.ControllerName; } } } }
次に、Startup.cs に規則を追加します。
public void ConfigureServices(IServiceCollection services) { // other calls omitted for brevity services.AddMvc(opt => { opt.Conventions.Add(new ApiExplorerVisibilityEnabledConvention()); }); }
- ASP.NET Core ですべてのルートのリストを取得する方法からのコード? - ロブ ラング博士、16 年 3 月 2 日 14:40
ASP.NET Core 用の ApiExplorer のダウンロード可能な NuGet があります: Microsoft.AspNetCore.Mvc.ApiExplorer 1.0.0
したがって、これはサポートされていることを意味します(AFAIKでもサポートされているSwagger / Swashbackleで使用されています)。