From 977220895d8127116d0000fa98088b235d4a8801 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 14 Aug 2023 10:36:19 +0200 Subject: Initial commit --- MxApiExtensions/Program.cs | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 MxApiExtensions/Program.cs (limited to 'MxApiExtensions/Program.cs') diff --git a/MxApiExtensions/Program.cs b/MxApiExtensions/Program.cs new file mode 100644 index 0000000..00afe09 --- /dev/null +++ b/MxApiExtensions/Program.cs @@ -0,0 +1,48 @@ +using MxApiExtensions; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddSingleton(); + +builder.Services.AddSingleton(); +builder.Services.AddScoped(); + +builder.Services.AddRequestTimeouts(x => { + x.DefaultPolicy = new() { + Timeout = TimeSpan.FromMinutes(10), + WriteTimeoutResponse = async context => { + context.Response.StatusCode = 504; + context.Response.ContentType = "application/json"; + await context.Response.StartAsync(); + await context.Response.WriteAsJsonAsync(new MatrixException() { + ErrorCode = "M_TIMEOUT", + Error = "Request timed out" + }.GetAsJson()); + await context.Response.CompleteAsync(); + } + }; +}); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +// app.UseHttpsRedirection(); + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); -- cgit 1.5.1