Headless.Api.Abstractions
0.4.15
dotnet add package Headless.Api.Abstractions --version 0.4.15
NuGet\Install-Package Headless.Api.Abstractions -Version 0.4.15
<PackageReference Include="Headless.Api.Abstractions" Version="0.4.15" />
<PackageVersion Include="Headless.Api.Abstractions" Version="0.4.15" />
<PackageReference Include="Headless.Api.Abstractions" />
paket add Headless.Api.Abstractions --version 0.4.15
#r "nuget: Headless.Api.Abstractions, 0.4.15"
#:package Headless.Api.Abstractions@0.4.15
#addin nuget:?package=Headless.Api.Abstractions&version=0.4.15
#tool nuget:?package=Headless.Api.Abstractions&version=0.4.15
Headless.Api.Abstractions
Defines core interfaces and contracts for HTTP request context, user identity, and web client information in ASP.NET Core applications.
Problem Solved
Provides a standardized abstraction layer for accessing request-scoped context (user, tenant, locale, timezone, client info) without coupling application code to ASP.NET Core's HttpContext directly.
Key Features
IRequestContext- Unified access to request-scoped information (user, tenant, locale, timezone, correlation ID)IWebClientInfoProvider- Client detection (IP address, user agent, device info)IRequestedApiVersion- API versioning abstraction- Framework constants for HTTP headers and common values
Installation
dotnet add package Headless.Api.Abstractions
Usage
Inject IRequestContext to access request-scoped information:
public sealed class OrderService(IRequestContext context)
{
public async Task<Order> CreateOrderAsync(CreateOrderRequest request, CancellationToken ct)
{
var userId = context.User.Id;
var tenantId = context.Tenant.Id;
var correlationId = context.CorrelationId;
// Use context information for auditing, logging, multi-tenancy
return await _repository.CreateAsync(new Order
{
UserId = userId,
TenantId = tenantId,
CreatedAt = context.DateStarted
}, ct).ConfigureAwait(false);
}
}
Configuration
No configuration required. This package contains interfaces only.
Dependencies
Headless.Core
Side Effects
None. This is an abstractions-only package.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- CommunityToolkit.HighPerformance (>= 8.4.2)
- Headless.Core (>= 0.4.15)
- Humanizer.Core (>= 3.0.10)
- IdGen (>= 3.0.7)
- JetBrains.Annotations (>= 2025.2.4)
- libphonenumber-csharp (>= 9.0.30)
- Microsoft.Bcl.TimeProvider (>= 10.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- morelinq (>= 4.4.0)
- Nito.AsyncEx (>= 5.1.2)
- Nito.Disposables (>= 2.5.0)
- Polly.Core (>= 8.6.6)
- Snappier (>= 1.3.1)
- System.Reactive (>= 6.1.0)
- TimeZoneConverter (>= 7.2.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Headless.Api.Abstractions:
| Package | Downloads |
|---|---|
|
Headless.Api.Core
Package Description |
|
|
Headless.Api.Logging.Serilog
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.