aboutsummaryrefslogtreecommitdiff
path: root/src/Web
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-02-25 18:51:29 +0200
committertranstrike <transtrike@gmail.com>2021-02-25 18:51:29 +0200
commitd841eada42e0f1f08f488a24752d2f2ae090cb53 (patch)
tree8a4620a8d472c7a274d950dc57b715b40da8c163 /src/Web
parent643100766cabc497b3cda27127ae829545f2bd0c (diff)
downloadDevHive-d841eada42e0f1f08f488a24752d2f2ae090cb53.tar
DevHive-d841eada42e0f1f08f488a24752d2f2ae090cb53.tar.gz
DevHive-d841eada42e0f1f08f488a24752d2f2ae090cb53.zip
Initial Swagger configuration setup
Diffstat (limited to 'src/Web')
-rw-r--r--src/Web/DevHive.Web/Configurations/Extensions/ConfigureSwagger.cs36
-rw-r--r--src/Web/DevHive.Web/DevHive.Web.csproj3
2 files changed, 35 insertions, 4 deletions
diff --git a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureSwagger.cs b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureSwagger.cs
index a0641ab..bfa44b0 100644
--- a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureSwagger.cs
+++ b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureSwagger.cs
@@ -1,23 +1,53 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Reflection;
using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.OpenApi.Models;
+using Swashbuckle.AspNetCore.SwaggerGen;
namespace DevHive.Web.Configurations.Extensions
{
public static class SwaggerExtensions
{
+#pragma warning disable S1075
+ private const string LicenseName = "GPL-3.0 License";
+ private const string LicenseUri = "https://github.com/Team-Kaleidoscope/DevHive/blob/main/LICENSE";
+ private const string TermsOfServiceUri = "https://example.com/terms";
+#pragma warning restore S1075
+
public static void SwaggerConfiguration(this IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
- c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
+ c.SwaggerDoc("v0.1", new OpenApiInfo
+ {
+ Version = "v0.1",
+ Title = "API",
+ Description = "DevHive Social Media's first official API release",
+ TermsOfService = new Uri(TermsOfServiceUri),
+ License = new OpenApiLicense
+ {
+ Name = LicenseName,
+ Url = new Uri(LicenseUri)
+ }
+ });
+
+ string xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
+ string xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
+ c.IncludeXmlComments(xmlPath);
});
}
public static void UseSwaggerConfiguration(this IApplicationBuilder app)
{
app.UseSwagger();
- app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"));
+ app.UseSwaggerUI(c =>
+ {
+ c.SwaggerEndpoint("/swagger/v0.1/swagger.json", "v0.1");
+ });
}
}
-} \ No newline at end of file
+}
diff --git a/src/Web/DevHive.Web/DevHive.Web.csproj b/src/Web/DevHive.Web/DevHive.Web.csproj
index 53f354e..6956613 100644
--- a/src/Web/DevHive.Web/DevHive.Web.csproj
+++ b/src/Web/DevHive.Web/DevHive.Web.csproj
@@ -5,6 +5,7 @@
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest</AnalysisLevel>
+ <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.3" NoWarn="NU1605"/>
@@ -29,4 +30,4 @@
<ProjectReference Include="..\DevHive.Web.Models\DevHive.Web.Models.csproj"/>
<ProjectReference Include="..\..\Services\DevHive.Services\DevHive.Services.csproj"/>
</ItemGroup>
-</Project> \ No newline at end of file
+</Project>