Archetypical.Software.Vega.Api.Abstractions
2.4.0
dotnet add package Archetypical.Software.Vega.Api.Abstractions --version 2.4.0
NuGet\Install-Package Archetypical.Software.Vega.Api.Abstractions -Version 2.4.0
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.4.0" />
<PackageVersion Include="Archetypical.Software.Vega.Api.Abstractions" Version="2.4.0" />
<PackageReference Include="Archetypical.Software.Vega.Api.Abstractions" />
paket add Archetypical.Software.Vega.Api.Abstractions --version 2.4.0
#r "nuget: Archetypical.Software.Vega.Api.Abstractions, 2.4.0"
#:package Archetypical.Software.Vega.Api.Abstractions@2.4.0
#addin nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.4.0
#tool nuget:?package=Archetypical.Software.Vega.Api.Abstractions&version=2.4.0
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 was computed. 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. |
-
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.0)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 9.0.9)
- Microsoft.AspNetCore.OData (>= 9.4.0)
- 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.13.1)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.13.1)
- OpenTelemetry.Extensions.Hosting (>= 1.13.1)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.12.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.12)
- OpenTelemetry.Instrumentation.Http (>= 1.12.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.12.0)
- Swashbuckle.AspNetCore (>= 9.0.6)
- Swashbuckle.AspNetCore.ReDoc (>= 9.0.6)
- Swashbuckle.AspNetCore.SwaggerGen (>= 9.0.6)
- System.Diagnostics.DiagnosticSource (>= 9.0.9)
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.4.0 | 128 | 10/13/2025 |
| 2.3.0 | 153 | 9/22/2025 |
| 2.2.0 | 128 | 9/8/2025 |
| 2.1.1 | 121 | 9/8/2025 |
| 2.1.0 | 200 | 5/5/2025 |
| 2.0.3 | 191 | 4/12/2025 |
| 2.0.2 | 102 | 4/11/2025 |
| 2.0.1 | 190 | 4/10/2025 |
| 2.0.0 | 197 | 4/9/2025 |
| 1.5.0 | 177 | 4/7/2025 |
| 1.4.0 | 177 | 4/2/2025 |
| 1.3.0 | 147 | 4/1/2025 |
| 1.2.8 | 155 | 3/31/2025 |
| 1.2.7 | 155 | 3/31/2025 |
| 1.2.6 | 133 | 3/27/2025 |
| 1.2.5 | 138 | 3/27/2025 |
| 1.2.4 | 127 | 3/27/2025 |
| 1.2.3 | 476 | 3/26/2025 |
| 1.2.2 | 191 | 3/11/2025 |
| 1.2.1 | 248 | 3/6/2025 |
| 1.2.0 | 267 | 3/3/2025 |
| 1.1.0 | 196 | 2/23/2025 |
| 1.0.6 | 99 | 2/23/2025 |
| 1.0.5 | 227 | 12/11/2024 |
| 1.0.4 | 101 | 12/9/2024 |