Files
tiku-backend.net/Tiku.Api/Configuration/ApplicationBuilderExtensions.cs

40 lines
1.2 KiB
C#

using Scalar.AspNetCore;
using Serilog;
using Tiku.Api.Logging;
using Tiku.Api.Middleware;
using Tiku.Api.Options;
namespace Tiku.Api.Configuration;
public static class ApplicationBuilderExtensions
{
public static WebApplication UseApiPipeline(this WebApplication app)
{
if (app.Environment.IsDevelopment())
{
app.MapOpenApi().AllowAnonymous();
app.MapScalarApiReference(options => options
.WithTitle("TIKU Backend API")
.AddPreferredSecuritySchemes("BearerAuth")
.EnablePersistentAuthentication())
.AllowAnonymous();
}
app.UseSerilogRequestLogging(SerilogRequestLogging.ConfigureRequestLogging);
app.UseMiddleware<ExceptionHandlingMiddleware>();
app.UseForwardedHeaders();
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors(CorsOptions.PolicyName);
app.UseMiddleware<TenantResolutionMiddleware>();
app.UseAuthentication();
app.UseMiddleware<AuthRateLimitPartitionMiddleware>();
app.UseRateLimiter();
app.UseMiddleware<CurrentPrincipalMiddleware>();
app.UseAuthorization();
app.MapControllers();
return app;
}
}