public ServiceRepositoryClient(RepositoryAgentOptions options, IHttpClientFactory httpClientFactory, ILogger <ServiceRepositoryClient> logger, IApiDescriptionProvider apiDescriptionProvider) { _options = options ?? throw new ArgumentNullException(nameof(options)); _httpClientFactory = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _apiDescriptionProvider = apiDescriptionProvider ?? throw new ArgumentNullException(nameof(apiDescriptionProvider)); }
internal static IReadOnlyList <ApiDescription> Execute(this IApiDescriptionProvider apiDescriptionProvider, ActionDescriptor actionDescriptor) { var context = new ApiDescriptionProviderContext(new[] { actionDescriptor }); apiDescriptionProvider.OnProvidersExecuting(context); apiDescriptionProvider.OnProvidersExecuted(context); return(context.Results.ToArray()); }
public ApiDescController( IApiDescriptionGroupCollectionProvider apiDescriptionGroupCollectionProvider , IApiDescriptionProvider apiDescriptionProvider , IActionDescriptorCollectionProvider actionDescriptorCollectionProvider ) { _apiDescriptionGroupCollectionProvider = apiDescriptionGroupCollectionProvider; _apiDescriptionProvider = apiDescriptionProvider; _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IApiDescriptionProvider prov, IServiceProvider serviceProvider) { //if (env.IsDevelopment()) //{ app.UseCors(options => options.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); //app.addRequestIdHeader() app.UseDeveloperExceptionPage(); app.UseSwagger(c => { c.SerializeAsV2 = true; }); //app.UseSwagger(); app.UseSwaggerUI(c => { //c.DocExpansion(DocExpansion.None); //var swaggerFilePath = Path.Combine(env.WebRootPath ?? "", "swagger.json"); //foreach(var desc in prov.ApiVersionDescriptions) //{ //} c.SwaggerEndpoint("/swagger/v1/swagger.json", "Hahn Applicant Api v1"); //c.RoutePrefix = string.Empty; }); //} app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); var context = serviceProvider.GetService <ApiContext>(); AddTestData(context); //app.UseMvc(); }