2016-07-14 25 views

Antwort

1

Es gibt eine herunterladbare NuGet der ApiExplorer für Asp.Net Kern: Microsoft.AspNetCore.Mvc.ApiExplorer 1.0.0

Dies bedeutet also, dass es unterstützt (wird von Swagger/Swashbackle die auch AFAIK werden unterstützt).

Hoffe es hilft!

4

Vielen Dank für Ihre Antwort Itay, es half mir ein bisschen bekommen die Antwort, die ich wollte. Für alle anderen, die den ApiExplorer benutzen müssen, habe ich hier einen gut geschriebenen Post auf StackOverflow gefunden.

MVC6 - List of all routes
Kurze Antwort, die Routen zu bekommen Sie die IApiDescriptionGroupCollectionProvider in Ihrem Controller mit Konstruktor Injektion injiziert haben. Sie erhalten dann die Routen in ApiDescriptionGroupCollectionProvider.ApiDescriptionGroups.Items. Die Routen sind nur sichtbar, wenn Sie sie als für ApiExplorer sichtbar markieren. Dies kann pro Controller oder unter Verwendung einer Konvention erfolgen. Da ich es auf alle meine Controller verwenden möchten, benutzte ich einen 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; 
      } 
     } 
    } 
} 

Dann in Startup.cs, fügen Sie die Konvention:

public void ConfigureServices(IServiceCollection services) 
{ 
    // other calls omitted for brevity 
    services.AddMvc(opt => 
    { 
     opt.Conventions.Add(new ApiExplorerVisibilityEnabledConvention());  
    }); 
} 
+0

ich das gleiche Problem haben, ich scheint keine Dokumente zu finden, die den API Explorer im Allgemeinen aktivieren. Kannst du mehr darüber erzählen? – vanthome