From f710c454d97334272c74b8c5256f8ce776512fee Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 20 Apr 2021 10:55:41 +0800 Subject: [PATCH] Added Swagger to Blazor-Server projects --- .../MyProjectNameBlazorModule.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs index 9d860a9030..ef3225458a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.OpenApi.Models; using MyCompanyName.MyProjectName.Blazor.Server.Menus; using MyCompanyName.MyProjectName.EntityFrameworkCore; using MyCompanyName.MyProjectName.Localization; @@ -86,6 +87,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server ConfigureAutoMapper(); ConfigureVirtualFileSystem(hostingEnvironment); ConfigureLocalizationServices(); + ConfigureSwaggerServices(context.Services); ConfigureAutoApiControllers(); ConfigureHttpClient(context); ConfigureBlazorise(context); @@ -186,6 +188,18 @@ namespace MyCompanyName.MyProjectName.Blazor.Server }); } + private void ConfigureSwaggerServices(IServiceCollection services) + { + services.AddSwaggerGen( + options => + { + options.SwaggerDoc("v1", new OpenApiInfo { Title = "MyProjectName API", Version = "v1" }); + options.DocInclusionPredicate((docName, description) => true); + options.CustomSchemaIds(type => type.FullName); + } + ); + } + private static void ConfigureHttpClient(ServiceConfigurationContext context) { context.Services.AddTransient(sp => new HttpClient @@ -265,6 +279,11 @@ namespace MyCompanyName.MyProjectName.Blazor.Server app.UseUnitOfWork(); app.UseIdentityServer(); app.UseAuthorization(); + app.UseSwagger(); + app.UseAbpSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); + }); app.UseConfiguredEndpoints(); } }