diff --git a/src/FilterLists.Api/FilterLists.Api.csproj b/src/FilterLists.Api/FilterLists.Api.csproj
index eeb71744a..6d1315c85 100644
--- a/src/FilterLists.Api/FilterLists.Api.csproj
+++ b/src/FilterLists.Api/FilterLists.Api.csproj
@@ -10,6 +10,7 @@
+
diff --git a/src/FilterLists.Api/Startup.cs b/src/FilterLists.Api/Startup.cs
index 3ffaea01e..176f392e4 100644
--- a/src/FilterLists.Api/Startup.cs
+++ b/src/FilterLists.Api/Startup.cs
@@ -5,6 +5,7 @@
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Swashbuckle.AspNetCore.Swagger;
namespace FilterLists.Api
{
@@ -22,6 +23,23 @@ public void ConfigureServices(IServiceCollection services)
services.AddFilterListsRepositories(Configuration);
services.AddFilterListsServices();
services.AddFilterListsApi();
+ services.AddSwaggerGen(c =>
+ {
+ c.SwaggerDoc("v1",
+ new Info
+ {
+ Title = "FilterLists API",
+ Version = "v1",
+ Description =
+ "FilterLists is the independent and comprehensive directory of all public filter and hosts lists for advertisements, trackers, malware, and annoyances.",
+ Contact = new Contact {Url = "https://filterlists.com/contact/"},
+ License = new License
+ {
+ Name = "Use under GPL-3.0",
+ Url = "https://github.com/collinbarrett/FilterLists/blob/master/LICENSE"
+ }
+ });
+ });
}
public void Configure(IApplicationBuilder app)
@@ -29,7 +47,14 @@ public void Configure(IApplicationBuilder app)
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
- }).UseMvc();
+ });
+
+ app.UseSwagger().UseSwaggerUI(c =>
+ {
+ c.SwaggerEndpoint("/swagger/v1/swagger.json", "FilterLists API V1");
+ });
+
+ app.UseMvc();
}
}
}
\ No newline at end of file