// это главный файл, тут все начинается using DEMO.Data; // база данных using Microsoft.EntityFrameworkCore; // чтоб работать с базой var builder = WebApplication.CreateBuilder(args); // говорю что у меня есть контроллеры (api) builder.Services.AddControllers(); // подключаю базу данных (простой файл sqlite, лежит рядом) builder.Services.AddDbContext(options => options.UseSqlite( builder.Configuration.GetConnectionString("DefaultConnection"))); // беру строку из настроек builder.Services.AddOpenApi(); // для проверки api var app = builder.Build(); // строю программу // сам создаю базу если ее нет (чтоб на сервере все завелось само) using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); db.Database.Migrate(); // применяю миграции // добавляю роли если их нет (без них регистрация не работает) if (!db.Roles.Any()) { db.Roles.Add(new DEMO.Models.Role { Name = "Admin" }); db.Roles.Add(new DEMO.Models.Role { Name = "Client" }); db.SaveChanges(); } } // в режиме разработки показываю api if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } // на сервере https делает nginx, поэтому тут редирект не нужен // app.UseHttpsRedirection(); app.UseDefaultFiles(); // чтоб открывался index.html сам app.UseStaticFiles(); // чтоб отдавать файлы из wwwroot app.UseAuthorization(); // проверка прав (пока простая) app.MapControllers(); // включаю все контроллеры app.Run(); // запускаю, поехали