From 3dc64fad3842e9c6e08202b8b5ca80ea6faad265 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Sun, 28 Jan 2024 03:13:12 +0100 Subject: [PATCH] Cleanup OpenAPI WebUI (Swagger) --- Iceshrimp.Backend/Iceshrimp.Backend.csproj | 1 - Iceshrimp.Backend/Startup.cs | 16 ++++++++++++++-- Iceshrimp.Backend/wwwroot/swagger/styles.css | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 Iceshrimp.Backend/wwwroot/swagger/styles.css diff --git a/Iceshrimp.Backend/Iceshrimp.Backend.csproj b/Iceshrimp.Backend/Iceshrimp.Backend.csproj index 0cca65fe..6d33b574 100644 --- a/Iceshrimp.Backend/Iceshrimp.Backend.csproj +++ b/Iceshrimp.Backend/Iceshrimp.Backend.csproj @@ -44,7 +44,6 @@ - diff --git a/Iceshrimp.Backend/Startup.cs b/Iceshrimp.Backend/Startup.cs index 3ea0873e..54b09db2 100644 --- a/Iceshrimp.Backend/Startup.cs +++ b/Iceshrimp.Backend/Startup.cs @@ -1,5 +1,7 @@ using Asp.Versioning; using Iceshrimp.Backend.Core.Extensions; +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerUI; using Vite.AspNetCore.Extensions; var builder = WebApplication.CreateBuilder(args); @@ -21,7 +23,9 @@ builder.Services.AddApiVersioning(options => { options.UnsupportedApiVersionStatusCode = 501; }); builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); +builder.Services.AddSwaggerGen(options => { + options.SwaggerDoc("v1", new OpenApiInfo { Title = "Iceshrimp.NET", Version = "1.0" }); +}); builder.Services.AddRazorPages(); builder.Services.AddViteServices(options => { options.PackageDirectory = "../Iceshrimp.Frontend"; @@ -44,7 +48,15 @@ var config = app.Initialize(args); // This determines the order of middleware execution in the request pipeline app.UseRouting(); app.UseSwagger(); -app.UseSwaggerUI(options => { options.DocumentTitle = "Iceshrimp API documentation"; }); +app.UseSwaggerUI(options => { + options.DocumentTitle = "Iceshrimp API documentation"; + options.SwaggerEndpoint("v1/swagger.json", "Iceshrimp.NET"); + options.InjectStylesheet("/swagger/styles.css"); + options.EnablePersistAuthorization(); + options.EnableTryItOutByDefault(); + options.DisplayRequestDuration(); + options.DefaultModelsExpandDepth(-1); // Hide "Schemas" section +}); app.UseStaticFiles(); app.UseRateLimiter(); app.UseAuthorization(); diff --git a/Iceshrimp.Backend/wwwroot/swagger/styles.css b/Iceshrimp.Backend/wwwroot/swagger/styles.css new file mode 100644 index 00000000..7c75ddfe --- /dev/null +++ b/Iceshrimp.Backend/wwwroot/swagger/styles.css @@ -0,0 +1,3 @@ +.swagger-ui .topbar .download-url-wrapper { + display: none; +} \ No newline at end of file