From 3fa3ef13b23f4035aab34ee6f19ee8a518333b35 Mon Sep 17 00:00:00 2001 From: Kirill Zotkin Date: Mon, 21 Apr 2025 22:38:07 +0300 Subject: [PATCH] added base path to communication control --- .../DevOpsProject/Program.cs | 23 +++++++++++++++---- .../DevOpsProject/appsettings.json | 1 + 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/CommunicationControl/DevOpsProject/Program.cs b/src/CommunicationControl/DevOpsProject/Program.cs index 6c6d8ea..99168e5 100644 --- a/src/CommunicationControl/DevOpsProject/Program.cs +++ b/src/CommunicationControl/DevOpsProject/Program.cs @@ -19,6 +19,8 @@ internal class Program // TODO: consider this approach builder.Services.AddJsonControllerOptionsConfiguration(); + string basePath = builder.Configuration.GetValue("BasePath") ?? string.Empty; + builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(c => { @@ -41,13 +43,26 @@ internal class Program builder.Services.AddProblemDetails(); var app = builder.Build(); - + if (!string.IsNullOrEmpty(basePath)) + { + var pathBase = new PathString(basePath); + app.UsePathBase(pathBase); + app.Use(async (context, next) => + { + context.Request.PathBase = pathBase; + await next(); + }); + } + app.UseExceptionHandler(); - app.UseSwagger(); - app.UseSwaggerUI(); - + app.UseSwaggerUI(c => + { + c.SwaggerEndpoint($"{basePath}/swagger/v1/swagger.json", "CommunicationControl - V1"); + c.RoutePrefix = $"swagger"; + + }); app.UseCors(corsPolicyName); app.UseAuthorization(); diff --git a/src/CommunicationControl/DevOpsProject/appsettings.json b/src/CommunicationControl/DevOpsProject/appsettings.json index 882ad53..c5426f6 100644 --- a/src/CommunicationControl/DevOpsProject/appsettings.json +++ b/src/CommunicationControl/DevOpsProject/appsettings.json @@ -20,6 +20,7 @@ }, "AllowedHosts": "*", "Urls": "http://0.0.0.0:8080", + "BasePath": "/", "Serilog": { "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ], "MinimumLevel": {