dot net core 1.0是否支持使用APIExplorer?我无法在其上找到任何文档或如何使用它,是否有人使用它并可以分享一些见解?
答案 0 :(得分:7)
感谢您的回复Itay,它帮助我得到了我想要的答案。对于其他需要使用ApiExplorer的人,我在这里找到了一篇写得很好的帖子 在StackOverflow上。
MVC6 - List of all routes
简短的回答是,使用构造函数注入获取路径您可以将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());
});
}
答案 1 :(得分:1)
Asp.Net Core的ApiExplorer可下载NuGet:Microsoft.AspNetCore.Mvc.ApiExplorer 1.0.0
所以这意味着它受支持(由Swagger / Swashbackle使用,也支持AFAIK)。
希望它有所帮助!