Поддерживается ли ApiExplorer в ASP.NET Core 1.0 и как его использовать?

Поддерживает ли ASP.NET Core 1.0 использование APIExplorer? Я не могу найти какие-либо документы по нему или как его использовать, кто-нибудь использовал его и может поделиться некоторыми соображениями?


person Andrej Kikelj    schedule 14.07.2016    source источник


Ответы (2)


Ответ Итая немного помог мне получить ответ, который я хотел.

Всем, кому нужно использовать ApiExplorer, д-р Роб Ланг написал ответ на < em>Как получить список всех маршрутов в 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());     
    });
}
person Andrej Kikelj    schedule 14.07.2016
comment
У меня та же проблема, я не могу найти документы о том, как вообще включить API Explorer. Можете ли вы рассказать больше об этом? - person vanthome; 25.07.2016

Существует загружаемый NuGet ApiExplorer для ASP.NET Core: Microsoft.AspNetCore. Mvc.ApiExplorer 1.0.0

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

person Itay Podhajcer    schedule 14.07.2016