Archetypical.Software.Vega.Api.Abstractions
2.0.3
dotnet add package Archetypical.Software.Vega.Api.Abstractions --version 2.0.3
NuGet\Install-Package Archetypical.Software.Vega.Api.Abstractions -Version 2.0.3
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.0.3" />
<PackageVersion Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.0.3" />
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" />
paket add Archetypical.Software.Vega.Api.Abstractions --version 2.0.3
#r "nuget: Archetypical.Software.Vega.Api.Abstractions, 2.0.3"
#addin nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.0.3
#tool nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.0.3
Archetypical.Software.Vega.Api.Abstractions
Base controllers, dependency injection helpers, and common abstractions for building ASP.NET Core APIs, often used with Dapr.
Overview
This package provides a set of tools and conventions to accelerate the development of robust, observable, and configurable web APIs. It includes:
- Simplified application setup (
CreateVegaApi
,UseVegaApiDefaults
). - Base DbContext (
VegaDbContext
) with multi-provider support. - Integrated Dapr features (Distributed Cache, Remote Configuration).
- Configuration options (
VegaApiOptions
) to easily enable/disable features like OData, Swagger, OpenTelemetry, Health Checks, etc. - Standardized configuration loading from
appsettings.json
and environment variables.
Installation
Install the package via NuGet:
# .NET CLI
dotnet add package Archetypical.Software.Vega.Api.Abstractions
# Package Manager
Install-Package Archetypical.Software.Vega.Api.Abstractions
You will also likely need packages for the features you intend to use, such as:
Microsoft.EntityFrameworkCore.SqlServer
/Npgsql.EntityFrameworkCore.PostgreSQL
/ etc. (for DbContext)Dapr.AspNetCore
(for Dapr integration)Swashbuckle.AspNetCore
(for Swagger, often included by default)OpenTelemetry.Extensions.Hosting
/OpenTelemetry.Instrumentation.AspNetCore
/ etc. (for OpenTelemetry)
Basic Usage (Program.cs
)
using Archetypical.Software.Vega.Api.Abstractions;
var builder = VegaApiApplication.CreateVegaApi(options =>
{
// --- Configure Core API Options ---
options.ServiceName = "MyMicroservice";
options.ServiceDescription = "Provides core business logic.";
// --- Toggle Features ---
// options.TurnOff.OData = true; // Example: Disable OData
// options.TurnOff.Dapr = true; // Example: Disable Dapr (and related features)
// --- Custom Configuration Actions ---
options.ODataBuilder = modelBuilder =>
{
// Configure your OData model here
// modelBuilder.EntitySet<Product>("Products");
};
options.HealthChecks = healthChecksBuilder =>
{
// Add custom health checks
// healthChecksBuilder.AddCheck<MyCustomHealthCheck>("custom_check");
};
}, args);
// --- Register Application Services ---
// builder.Services.AddScoped<IMyService, MyService>();
// --- Register DbContext (if using VegaDbContext) ---
// Must inherit from VegaDbContext
// builder.Services.AddDbContext<MyAppContext>();
var app = builder.Build();
// --- Apply Vega Middleware & Initializers ---
app.UseVegaApiDefaults();
// --- Configure Standard ASP.NET Core Middleware ---
// app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
// Optional: Map Dapr subscription handler if using pub/sub
// app.MapSubscribeHandler();
app.Run();
Documentation
For detailed information on configuration and features, please refer to the documentation in the docs
folder:
Key areas include:
- Configuring
VegaApiOptions
- Using
CreateVegaApi
andUseVegaApiDefaults
- Configuration via
appsettings.json
and Environment Variables - Using
VegaDbContext
- Dapr Distributed Cache
- Remote Configuration
Contributing
[Details on contributing, code of conduct, etc.]
License
[License information]
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net9.0
- Archetypical.Software.Configuration.Manager (>= 0.1.2)
- AspNetCore.HealthChecks.ApplicationStatus (>= 9.0.0)
- AspNetCore.HealthChecks.Dapr (>= 9.0.0)
- Dapr.AspNetCore (>= 1.15.3)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 9.0.3)
- Microsoft.AspNetCore.OData (>= 9.2.1)
- Microsoft.EntityFrameworkCore (>= 9.0.4)
- Microsoft.EntityFrameworkCore.InMemory (>= 9.0.4)
- Microsoft.EntityFrameworkCore.Sqlite (>= 9.0.4)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.4)
- Microsoft.Extensions.Caching.Memory (>= 9.0.4)
- Microsoft.Extensions.Diagnostics.Probes (>= 9.0.0-preview.9.24556.5)
- Microsoft.Extensions.Diagnostics.ResourceMonitoring (>= 9.4.0)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 9.0.4)
- OpenTelemetry.Exporter.Console (>= 1.11.2)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.11.2)
- OpenTelemetry.Extensions.Hosting (>= 1.11.2)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.11.1)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.12)
- OpenTelemetry.Instrumentation.Http (>= 1.11.1)
- OpenTelemetry.Instrumentation.Runtime (>= 1.11.1)
- Swashbuckle.AspNetCore (>= 8.1.0)
- Swashbuckle.AspNetCore.ReDoc (>= 8.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 8.1.0)
- System.Diagnostics.DiagnosticSource (>= 9.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.3 | 0 | 7 hours ago |
2.0.2 | 51 | a day ago |
2.0.1 | 151 | 3 days ago |
2.0.0 | 157 | 3 days ago |
1.5.0 | 137 | 6 days ago |
1.4.0 | 139 | 10 days ago |
1.3.0 | 115 | 12 days ago |
1.2.8 | 126 | 12 days ago |
1.2.7 | 125 | 13 days ago |
1.2.6 | 95 | 16 days ago |
1.2.5 | 103 | 17 days ago |
1.2.4 | 94 | 17 days ago |
1.2.3 | 439 | 18 days ago |
1.2.2 | 154 | a month ago |
1.2.1 | 213 | a month ago |
1.2.0 | 236 | a month ago |
1.1.0 | 163 | 2 months ago |
1.0.6 | 71 | 2 months ago |
1.0.5 | 197 | 4 months ago |
1.0.4 | 74 | 4 months ago |