using Apimanager_backend.Config; using Apimanager_backend.Data; using Apimanager_backend.Filters; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Serilog; using Serilog.Sinks.MariaDB.Extensions; var builder = WebApplication.CreateBuilder(args); // Add services to the container. IConfiguration configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); string? redStr = configuration["Redis:ConnectionString"]; string? constr = configuration.GetConnectionString("DefaultConnection"); //ÈÕÖ¾·þÎñ Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console() .WriteTo.MariaDB( connectionString: constr, tableName: "Logs", autoCreateTable:true ).CreateLogger(); builder.Host.UseSerilog(); builder.Services.AddDbContext(option => option.UseMySql(constr, MySqlServerVersion.AutoDetect(constr)) ); builder.Services.AddAllService(configuration); builder.Services.AddControllers(options => { options.Filters.Add(); }).ConfigureApiBehaviorOptions(option => { option.SuppressModelStateInvalidFilter = true; }) .AddJsonOptions(options => { options.JsonSerializerOptions.MaxDepth = 64; }); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); app.MapControllers(); app.Run();