diff --git a/src/Controllers/QuotesController.cs b/src/Controllers/QuotesController.cs index ea27342..e44775b 100644 --- a/src/Controllers/QuotesController.cs +++ b/src/Controllers/QuotesController.cs @@ -6,8 +6,8 @@ namespace QuotesTest.Controllers; [Route("[controller]")] public class QuotesController : Controller { - private readonly Quotes _quotes; - public QuotesController(Quotes quotes) + private readonly QuotesContainer _quotes; + public QuotesController(QuotesContainer quotes) { _quotes = quotes; } diff --git a/src/Program.cs b/src/Program.cs index 1190d1a..44647ea 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -1,18 +1,24 @@ +using System.Net; using System.Text.Json; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.OpenApi; using QuotesTest; +string domain = "https://ld50.dev"; // TODO: Remove magic strings, i.e. move to config file +string basePath = "QuotesTest"; // TODO: Remove magic strings +string absoluteBasePath = basePath.Length > 0 ? $"/{basePath}" : basePath; +string fullBasePath = $"{domain}/{basePath}"; + var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); -string file = File.ReadAllText("tools/scraper/quotes.json"); +string file = File.ReadAllText("Tools/scraper/quotes.json"); List quotes = JsonSerializer.Deserialize>(file) ?? throw new Exception("Konnte Quotes nicht laden."); builder.Services.AddSingleton(quotes); -builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddEndpointsApiExplorer(); List? ApiKeys = builder.Configuration.GetSection("ApiKeys").Get>(); @@ -23,7 +29,9 @@ builder.Services.AddOpenApi(options => { if (ApiKeys is null) return Task.CompletedTask; - + document.Servers = [ + new OpenApiServer { Url = fullBasePath } + ]; document.Components ??= new(); document.Components.SecuritySchemes ??= new Dictionary(); @@ -51,10 +59,6 @@ builder.Services.AddOpenApi(options => }); var app = builder.Build(); -string domain = "https://ld50.dev"; -string basePath = "QuotesTest"; -string absoluteBasePath = basePath.Length > 0 ? $"/{basePath}" : basePath; -string fullBasePath = $"{domain}/{basePath}"; app.UsePathBase(absoluteBasePath); // Configure the HTTP request pipeline. @@ -70,7 +74,8 @@ app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | - ForwardedHeaders.XForwardedProto + ForwardedHeaders.XForwardedProto| + ForwardedHeaders.XForwardedHost }); app.UseHttpsRedirection(); diff --git a/src/Quotes.cs b/src/Quotes.cs index 5814b87..5de28b6 100644 --- a/src/Quotes.cs +++ b/src/Quotes.cs @@ -2,10 +2,10 @@ using System.Text.Json.Serialization; namespace QuotesTest; -public class Quotes +public class QuotesContainer { - private readonly List _quotes; - public Quotes(List quotes) + public readonly List _quotes; + public QuotesContainer(List quotes) { _quotes = quotes; } diff --git a/src/appsettings.json b/src/appsettings.json index a413585..e2720e6 100644 --- a/src/appsettings.json +++ b/src/appsettings.json @@ -8,7 +8,7 @@ "Kestrel":{ "Endpoints": { "http":{ - "Url": "http://0.0.0.0:5246" + "Url": "https://0.0.0.0:5246" } } },