42 lines
1.6 KiB
C#
42 lines
1.6 KiB
C#
// это главный файл, тут все начинается
|
||
using DEMO.Data; // база данных
|
||
using Microsoft.EntityFrameworkCore; // чтоб работать с базой
|
||
|
||
var builder = WebApplication.CreateBuilder(args);
|
||
|
||
// говорю что у меня есть контроллеры (api)
|
||
builder.Services.AddControllers();
|
||
|
||
// подключаю базу данных (простой файл sqlite, лежит рядом)
|
||
builder.Services.AddDbContext<AppDbContext>(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<AppDbContext>();
|
||
db.Database.Migrate(); // применяю миграции
|
||
}
|
||
|
||
// в режиме разработки показываю api
|
||
if (app.Environment.IsDevelopment())
|
||
{
|
||
app.MapOpenApi();
|
||
}
|
||
|
||
app.UseHttpsRedirection(); // всегда https
|
||
|
||
app.UseDefaultFiles(); // чтоб открывался index.html сам
|
||
app.UseStaticFiles(); // чтоб отдавать файлы из wwwroot
|
||
|
||
app.UseAuthorization(); // проверка прав (пока простая)
|
||
|
||
app.MapControllers(); // включаю все контроллеры
|
||
|
||
app.Run(); // запускаю, поехали
|