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(); app.UseForwardedHeaders(); app.UseHttpsRedirection(); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseRouting(); app.UseCors(CorsOptions.PolicyName); app.UseMiddleware(); app.UseAuthentication(); app.UseMiddleware(); app.UseRateLimiter(); app.UseMiddleware(); app.UseAuthorization(); app.MapControllers(); return app; } }