From ac6a9173d2e36ae2d09d6603eb8163230d49d7c2 Mon Sep 17 00:00:00 2001 From: Duco Date: Tue, 17 Jul 2018 21:07:59 +0200 Subject: [PATCH] (Hopefully) fixed Swagger file generation bug --- .../Program.cs | 3 +- src/HttPlaceholder/Startup.cs | 43 ++++++++++++------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/HttPlaceholder.SwaggerGenerator/Program.cs b/src/HttPlaceholder.SwaggerGenerator/Program.cs index 27799945a..e397c3fb9 100644 --- a/src/HttPlaceholder.SwaggerGenerator/Program.cs +++ b/src/HttPlaceholder.SwaggerGenerator/Program.cs @@ -20,7 +20,8 @@ static async Task Main(string[] args) var startup = new Startup(); var testServer = new TestServer( new WebHostBuilder() - .UseStartup()); + .ConfigureServices(services => Startup.ConfigureServicesStatic(services)) + .Configure(appBuilder => Startup.ConfigureStatic(appBuilder, null, false))); var client = testServer.CreateClient(); // Retrieve the Swagger URL. diff --git a/src/HttPlaceholder/Startup.cs b/src/HttPlaceholder/Startup.cs index c620e6563..aa244c00c 100644 --- a/src/HttPlaceholder/Startup.cs +++ b/src/HttPlaceholder/Startup.cs @@ -15,6 +15,34 @@ namespace HttPlaceholder public class Startup { public void ConfigureServices(IServiceCollection services) + { + ConfigureServicesStatic(services); + } + + public void Configure(IApplicationBuilder app, IHostingEnvironment env) + { + ConfigureStatic(app, env, true); + } + + public static void ConfigureStatic(IApplicationBuilder app, IHostingEnvironment env, bool preloadStubs) + { + app.UseMiddleware(); + app.UseMvc(); + app.UseSwagger(); + app.UseSwaggerUI(c => + { + c.SwaggerEndpoint("/swagger/v1/swagger.json", "HttPlaceholder API V1"); + }); + + if (preloadStubs) + { + // Check if the stubs can be loaded. + var stubContainer = app.ApplicationServices.GetService(); + Task.Run(() => stubContainer.GetStubsAsync()).Wait(); + } + } + + public static void ConfigureServicesStatic(IServiceCollection services) { services.AddMvc(options => { @@ -34,20 +62,5 @@ public void ConfigureServices(IServiceCollection services) DependencyRegistration.RegisterDependencies(services); Services.DependencyRegistration.RegisterDependencies(services); } - - public void Configure(IApplicationBuilder app, IHostingEnvironment env) - { - app.UseMiddleware(); - app.UseMvc(); - app.UseSwagger(); - app.UseSwaggerUI(c => - { - c.SwaggerEndpoint("/swagger/v1/swagger.json", "HttPlaceholder API V1"); - }); - - // Check if the stubs can be loaded. - var stubContainer = app.ApplicationServices.GetService(); - Task.Run(() => stubContainer.GetStubsAsync()).Wait(); - } } }