diff --git a/services/Archival/FilterLists.Archival.Api/Program.cs b/services/Archival/FilterLists.Archival.Api/Program.cs
index 1717ba104..439e00cd9 100644
--- a/services/Archival/FilterLists.Archival.Api/Program.cs
+++ b/services/Archival/FilterLists.Archival.Api/Program.cs
@@ -19,5 +19,10 @@
app.UseExceptionHandler(app.Environment.IsDevelopment() ? "/error-local-development" : "/error");
app.UseSwagger();
app.MapControllers();
+app.Use(async (context, next) =>
+{
+ context.Request.PathBase = "/api/archival";
+ await next.Invoke();
+});
await app.TryRunWithLoggingAsync();
diff --git a/services/Archival/FilterLists.Archival.Api/SwaggerConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Api/SwaggerConfigurationExtensions.cs
index 31712ea62..0abffcfce 100644
--- a/services/Archival/FilterLists.Archival.Api/SwaggerConfigurationExtensions.cs
+++ b/services/Archival/FilterLists.Archival.Api/SwaggerConfigurationExtensions.cs
@@ -11,23 +11,30 @@ public static void AddSwaggerGen(this IServiceCollection services)
{
o.SupportNonNullableReferenceTypes();
- o.SwaggerDoc("v1", new OpenApiInfo
- {
- Title = "FilterLists Archival API",
- Description =
- "An ASP.NET Core API archiving and serving copies of FilterLists for mirrors and analysis.",
- Version = "v1",
- //TermsOfService = "",
- Contact = new OpenApiContact { Name = "FilterLists", Url = new Uri("https://filterlists.com") },
- License = new OpenApiLicense
+ o.SwaggerDoc(
+ "v1",
+ new OpenApiInfo
{
- Name = "MIT License",
- Url = new Uri("https://github.com/collinbarrett/FilterLists/blob/master/LICENSE")
- }
- });
+ Title = "FilterLists Archival API",
+ Description = "An ASP.NET Core API archiving and serving copies of FilterLists for mirrors and analysis.",
+ Version = "v1",
+ //TermsOfService = "",
+ Contact = new OpenApiContact { Name = "FilterLists", Url = new Uri("https://filterlists.com") },
+ License = new OpenApiLicense
+ {
+ Name = "MIT License",
+ Url = new Uri("https://github.com/collinbarrett/FilterLists/blob/master/LICENSE")
+ }
+ });
- var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
- o.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFile));
+ // Swagger UI struggles with lookups of nested types represented by concatenated '+'
+ o.CustomSchemaIds(t => t.FullName?.Replace("+", "."));
+
+ var apiXmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
+ o.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, apiXmlFile));
+
+ var applicationXmlFile = $"{typeof(Application.ConfigurationExtensions).Assembly.GetName().Name}.xml";
+ o.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, applicationXmlFile));
});
}
diff --git a/services/Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj b/services/Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj
index 354bdffd2..2193488b4 100644
--- a/services/Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj
+++ b/services/Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj
@@ -4,6 +4,7 @@
net6.0
enable
enable
+ true
diff --git a/services/Directory/FilterLists.Directory.Api/SwaggerConfigurationExtensions.cs b/services/Directory/FilterLists.Directory.Api/SwaggerConfigurationExtensions.cs
index 6464af5ab..bec00c75d 100644
--- a/services/Directory/FilterLists.Directory.Api/SwaggerConfigurationExtensions.cs
+++ b/services/Directory/FilterLists.Directory.Api/SwaggerConfigurationExtensions.cs
@@ -11,7 +11,8 @@ public static void AddSwaggerGen(this IServiceCollection services)
{
o.SupportNonNullableReferenceTypes();
- o.SwaggerDoc("v1",
+ o.SwaggerDoc(
+ "v1",
new OpenApiInfo
{
Title = "FilterLists Directory API",