diff --git a/.gitignore b/.gitignore index 997839b..98c4cdd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ bin/ obj/ publish/ +*.zip # Skripte aus publish/ im Root behalten !install-service.ps1 diff --git a/Directory.Build.props b/Directory.Build.props index e4c07a6..e19a91c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,7 @@ + true + win-x64 $([System.String]::Copy('1.0.0')) diff --git a/MailPrint/MailPrint.csproj b/MailPrint/MailPrint.csproj index 5496211..bf4ea0a 100644 --- a/MailPrint/MailPrint.csproj +++ b/MailPrint/MailPrint.csproj @@ -8,6 +8,10 @@ MailPrint MailPrint Exe + true + win-x64 + true + $(NoWarn);1591 diff --git a/MailPrint/Program.cs b/MailPrint/Program.cs index 3e3c5a8..50c158b 100644 --- a/MailPrint/Program.cs +++ b/MailPrint/Program.cs @@ -51,7 +51,34 @@ try builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(c => - c.SwaggerDoc("v1", new() { Title = "MailPrint API", Version = "v1" })); + { + c.SwaggerDoc("v1", new() { Title = "MailPrint API", Version = "v1" }); + + // XML-Doku aus /// Kommentaren in OpenAPI uebernehmen + var xmlPath = Path.Combine(AppContext.BaseDirectory, "MailPrint.xml"); + if (File.Exists(xmlPath)) + c.IncludeXmlComments(xmlPath); + + // API-Key-Security im Schema dokumentieren -> generierte Clients + // setzen den Header automatisch, Swagger UI hat Authorize-Button + var scheme = new Microsoft.OpenApi.Models.OpenApiSecurityScheme + { + Name = "X-Api-Key", + Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey, + In = Microsoft.OpenApi.Models.ParameterLocation.Header, + Description = "API-Key fuer alle /api/* Endpunkte. Konfiguriert in MailPrintConfig.", + Reference = new Microsoft.OpenApi.Models.OpenApiReference + { + Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme, + Id = "ApiKey" + } + }; + c.AddSecurityDefinition("ApiKey", scheme); + c.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement + { + [scheme] = Array.Empty() + }); + }); var app = builder.Build(); app.UseSwagger(); diff --git a/MailPrintConfig/MailPrintConfig.csproj b/MailPrintConfig/MailPrintConfig.csproj index 51a25ce..dd16daf 100644 --- a/MailPrintConfig/MailPrintConfig.csproj +++ b/MailPrintConfig/MailPrintConfig.csproj @@ -8,6 +8,8 @@ true MailPrintConfig MailPrintConfig + true + win-x64