2016-07-14 3 views

ответ

1

Там в загружаемую NuGet из ApiExplorer для Asp.Net Ядра: Microsoft.AspNetCore.Mvc.ApiExplorer 1.0.0

Таким образом, это означает, что она поддерживается (используется Swagger/Swashbackle, которые также поддерживаются AFAIK).

Надеюсь, это поможет!

4

Спасибо за ваш ответ. Это помогло мне немного получить ответ, который я хотел. Для всех, кому нужно использовать 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());  
    }); 
} 
+0

У меня такая же проблема, я похоже, не могут найти документы о том, как включить API Explorer в целом. Можете ли вы рассказать об этом больше? – vanthome