Cleaned up the startup sequence.

This commit is contained in:
Masu Baumgartner
2024-10-28 21:30:00 +01:00
parent f6ed12fc7a
commit e02af774a9
10 changed files with 402 additions and 166 deletions

View File

@@ -0,0 +1,46 @@
using Microsoft.OpenApi.Models;
using MoonCore.Services;
using Moonlight.ApiServer.Configuration;
using Moonlight.ApiServer.Interfaces.Startup;
namespace Moonlight.ApiServer.Implementations.Startup;
public class ApiDocsStartup : IAppStartup, IEndpointStartup
{
private readonly ConfigService<AppConfiguration> ConfigService;
private readonly ILogger<ApiDocsStartup> Logger;
public ApiDocsStartup(ConfigService<AppConfiguration> configService, ILogger<ApiDocsStartup> logger)
{
ConfigService = configService;
Logger = logger;
}
public Task BuildApp(IHostApplicationBuilder builder)
{
if(!ConfigService.Get().Development.EnableApiDocs)
return Task.CompletedTask;
builder.Services.AddEndpointsApiExplorer();
// Configure swagger api specification generator and set the document title for the api docs to use
builder.Services.AddSwaggerGen(options => options.SwaggerDoc("main", new OpenApiInfo()
{
Title = "Moonlight API"
}));
return Task.CompletedTask;
}
public Task ConfigureApp(IApplicationBuilder app) => Task.CompletedTask;
public Task ConfigureEndpoints(IEndpointRouteBuilder routeBuilder)
{
if(!ConfigService.Get().Development.EnableApiDocs)
return Task.CompletedTask;
routeBuilder.MapSwagger("/api/swagger/{documentName}");
return Task.CompletedTask;
}
}