| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using Application;
- using Infrastructure;
- using SharedKernel;
- using Web.Api;
- using Web.Api.Extensions;
- using System.Reflection;
- var builder = WebApplication.CreateBuilder(args);
- var settings = builder.Configuration.Get<AppSettings>()!;
- Console.Title = $"{settings.App.Name} API";
- Console.WriteLine($"ENV={builder.Environment.EnvironmentName}");
- Console.WriteLine($"현재 시간: {DateTime.Now} / {TimeZoneInfo.Local.Id}");
- builder.Services.Configure<AppSettings>(builder.Configuration);
- builder.Services
- .AddApplication()
- .AddPresentation()
- .AddApiInfrastructure(builder.Configuration);
- // CORS
- builder.Services.AddCors(options =>
- {
- options.AddPolicy(settings.CorsPolicy.Name, policy =>
- {
- policy
- .WithOrigins(settings.CorsPolicy.AllowedOrigins.ToArray())
- .AllowAnyHeader()
- .AllowAnyMethod()
- .AllowCredentials()
- .SetPreflightMaxAge(TimeSpan.FromSeconds(settings.CorsPolicy.PreflightMaxAgeSeconds));
- });
- });
- builder.Services.AddEndpoints(Assembly.GetExecutingAssembly());
- builder.Logging.AddConsole();
- /**
- * =======================================================================================================================================================
- */
- var app = builder.Build();
- /**
- * =======================================================================================================================================================
- */
- if (app.Environment.IsDevelopment())
- {
- app.UseSwagger();
- app.UseSwaggerUI();
- }
- // 상태 확인
- app.MapHealthChecks("/health");
- app.UseExceptionHandler();
- app.UseCors(settings.CorsPolicy.Name);
- app.UseAuthentication();
- app.UseAuthorization();
- app.MapEndpoints();
- app.Run();
|