Added new db connection and health check endpoint

This commit is contained in:
2026-02-17 21:02:24 +02:00
parent 9b86b95808
commit 7cb5c1aa7e
8 changed files with 85 additions and 11 deletions

View File

@@ -1,9 +1,31 @@
using Microsoft.Data.Sqlite;
var builder = WebApplication.CreateBuilder(args);
var configuredConnectionString = builder.Configuration.GetConnectionString("DefaultConnection")
?? throw new InvalidOperationException("Connection string 'DefaultConnection' was not found.");
var sqliteConnectionStringBuilder = new SqliteConnectionStringBuilder(configuredConnectionString);
var databasePath = Path.GetFullPath(Path.Combine(builder.Environment.ContentRootPath, sqliteConnectionStringBuilder.DataSource));
var databaseDirectory = Path.GetDirectoryName(databasePath)
?? throw new InvalidOperationException("Could not determine database directory.");
Directory.CreateDirectory(databaseDirectory);
sqliteConnectionStringBuilder.DataSource = databasePath;
var resolvedConnectionString = sqliteConnectionStringBuilder.ToString();
builder.Services.AddScoped(_ => new SqliteConnection(resolvedConnectionString));
builder.Services.AddOpenApi();
var app = builder.Build();
using (var connection = new SqliteConnection(resolvedConnectionString))
{
connection.Open();
}
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
@@ -20,4 +42,19 @@ app.MapGet("/", () =>
})
.WithName("GetVersion");
app.MapGet("/health/db", async (SqliteConnection connection) =>
{
await connection.OpenAsync();
await using var command = connection.CreateCommand();
command.CommandText = "SELECT 1";
var result = await command.ExecuteScalarAsync();
return Results.Ok(new
{
Database = "ok",
Result = result
});
})
.WithName("GetDatabaseHealth");
app.Run();

View File

@@ -8,6 +8,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.0" />
</ItemGroup>
</Project>

View File

@@ -1,4 +1,7 @@
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=../Database/klapi.db"
},
"Logging": {
"LogLevel": {
"Default": "Information",

View File

@@ -1,4 +1,7 @@
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=../Database/klapi.db"
},
"Logging": {
"LogLevel": {
"Default": "Information",