Archetypical.Software.Vega.Api.Abstractions
2.7.1
dotnet add package Archetypical.Software.Vega.Api.Abstractions --version 2.7.1
NuGet\Install-Package Archetypical.Software.Vega.Api.Abstractions -Version 2.7.1
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.7.1" />
<PackageVersion Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.7.1" />
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" />
paket add Archetypical.Software.Vega.Api.Abstractions --version 2.7.1
#r "nuget: Archetypical.Software.Vega.Api.Abstractions, 2.7.1"
#:package Archetypical.Software.Vega.Api.Abstractions@2.7.1
#addin nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.7.1
#tool nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.7.1
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.jsonand 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
CreateVegaApiandUseVegaApiDefaults - Configuration via
appsettings.jsonand 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. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Archetypical.Software.Configuration.Manager (>= 0.2.5)
- AspNetCore.HealthChecks.ApplicationStatus (>= 9.0.0)
- AspNetCore.HealthChecks.Dapr (>= 9.0.0)
- Dapr.AspNetCore (>= 1.16.1)
- EntityFrameworkCore.ClickHouse (>= 3.0.1)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 10.0.1)
- Microsoft.AspNetCore.OData (>= 9.4.1)
- Microsoft.EntityFrameworkCore (>= 10.0.1)
- Microsoft.EntityFrameworkCore.InMemory (>= 10.0.1)
- Microsoft.EntityFrameworkCore.Sqlite (>= 10.0.1)
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.1)
- Microsoft.Extensions.Caching.Memory (>= 10.0.1)
- Microsoft.Extensions.Diagnostics.Probes (>= 9.0.0-preview.9.24556.5)
- Microsoft.Extensions.Diagnostics.ResourceMonitoring (>= 10.1.0)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.0)
- OpenTelemetry.Exporter.Console (>= 1.14.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.12)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.14.0)
- Swashbuckle.AspNetCore (>= 10.1.0)
- Swashbuckle.AspNetCore.ReDoc (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.1.0)
-
net9.0
- Archetypical.Software.Configuration.Manager (>= 0.2.5)
- AspNetCore.HealthChecks.ApplicationStatus (>= 9.0.0)
- AspNetCore.HealthChecks.Dapr (>= 9.0.0)
- Dapr.AspNetCore (>= 1.16.1)
- EntityFrameworkCore.ClickHouse (>= 2.0.1)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 9.0.9)
- Microsoft.AspNetCore.OData (>= 9.4.1)
- Microsoft.EntityFrameworkCore (>= 9.0.9)
- Microsoft.EntityFrameworkCore.InMemory (>= 9.0.9)
- Microsoft.EntityFrameworkCore.Sqlite (>= 9.0.9)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.9)
- Microsoft.Extensions.Caching.Memory (>= 9.0.9)
- Microsoft.Extensions.Diagnostics.Probes (>= 9.0.0-preview.9.24556.5)
- Microsoft.Extensions.Diagnostics.ResourceMonitoring (>= 9.9.0)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 9.0.4)
- OpenTelemetry.Exporter.Console (>= 1.14.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.12)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.14.0)
- Swashbuckle.AspNetCore (>= 10.1.0)
- Swashbuckle.AspNetCore.ReDoc (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Archetypical.Software.Vega.Api.Abstractions:
| Package | Downloads |
|---|---|
|
Archetypical.Software.Vega.Api.IntegrationTests.Framework
Reusable integration test framework for applications built on Archetypical.Software.Vega.Api.Abstractions. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.7.1 | 172 | 1/10/2026 |
| 2.7.0 | 70 | 1/9/2026 |
| 2.6.0 | 64 | 1/9/2026 |
| 2.5.0 | 97 | 12/31/2025 |
| 2.4.0 | 175 | 10/13/2025 |
| 2.3.0 | 199 | 9/22/2025 |
| 2.2.0 | 162 | 9/8/2025 |
| 2.1.1 | 160 | 9/8/2025 |
| 2.1.0 | 239 | 5/5/2025 |
| 2.0.3 | 224 | 4/12/2025 |
| 2.0.2 | 143 | 4/11/2025 |
| 2.0.1 | 224 | 4/10/2025 |
| 2.0.0 | 240 | 4/9/2025 |
| 1.5.0 | 213 | 4/7/2025 |
| 1.4.0 | 209 | 4/2/2025 |
| 1.3.0 | 177 | 4/1/2025 |
| 1.2.8 | 183 | 3/31/2025 |
| 1.2.7 | 199 | 3/31/2025 |
| 1.2.6 | 170 | 3/27/2025 |
| 1.2.5 | 173 | 3/27/2025 |