Поддерживает ли ASP.NET Core 1.0 использование APIExplorer? Я не могу найти какие-либо документы по нему или как его использовать, кто-нибудь использовал его и может поделиться некоторыми соображениями?
Поддерживается ли ApiExplorer в ASP.NET Core 1.0 и как его использовать?
Ответы (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()); }); }
- Код из Как получить список всех маршрутов в ASP.NET Core? — Dr Rob Lang, 02 март 2016, в 14:40
Существует загружаемый NuGet ApiExplorer для ASP.NET Core: Microsoft.AspNetCore. Mvc.ApiExplorer 1.0.0
Так что это означает, что он поддерживается (используется Swagger/Swashbackle, которые также поддерживаются AFAIK).