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