using Microsoft.OpenApi.Models; using System.Reflection; namespace DocumentOperator.API.Configuration { /// /// Provides extension methods for configuring Swagger/OpenAPI documentation. /// public static class SwaggerConfiguration { /// /// Adds Swagger documentation generation to the service collection. /// /// The service collection to add Swagger to. /// The modified service collection. public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services) { services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "DD Document Operator API", Version = "v1", Description = "PDF Verarbeitungs-Service für Validierung, Stempel, Zertifikate, Anhänge & Zusammenführung" }); // Resolve conflicting actions: Keep first variant // DualInputDocumentFilter will merge both variants into single operation options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); // Add document filter to merge operations with different content types options.DocumentFilter(); // XML-Kommentare einbinden var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); options.IncludeXmlComments(xmlPath); }); return services; } } }