feat(backend): restructure API into layers with OpenAPI, versioning and error handling
Split the backend into API host, Domain, Application and Infrastructure projects. Add Swagger/OpenAPI per API version, Asp.Versioning (query/header), ProblemDetails with a global exception handler and SurrealQL migrations applied at startup (namespace/database ensured). Infrastructure owns the SurrealDB client, settings and DI.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
namespace TarninaHub.Application.Abstractions;
|
||||
|
||||
public interface IMigrationRunner
|
||||
{
|
||||
Task ApplyAsync(CancellationToken cancellationToken);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using TarninaHub.Application.Dtos;
|
||||
|
||||
namespace TarninaHub.Application.Abstractions;
|
||||
|
||||
public interface IStorageService
|
||||
{
|
||||
Task InitializeAsync(CancellationToken cancellationToken);
|
||||
|
||||
StorageInfo GetInfo();
|
||||
|
||||
Task<int> GetProbeCountAsync(CancellationToken cancellationToken);
|
||||
|
||||
Task<StorageProbe> AddProbeAsync(CancellationToken cancellationToken);
|
||||
}
|
||||
Reference in New Issue
Block a user