FractalDataWorks.Web.Http.Abstractions
0.4.0-preview.6
dotnet add package FractalDataWorks.Web.Http.Abstractions --version 0.4.0-preview.6
NuGet\Install-Package FractalDataWorks.Web.Http.Abstractions -Version 0.4.0-preview.6
<PackageReference Include="FractalDataWorks.Web.Http.Abstractions" Version="0.4.0-preview.6" />
<PackageVersion Include="FractalDataWorks.Web.Http.Abstractions" Version="0.4.0-preview.6" />
<PackageReference Include="FractalDataWorks.Web.Http.Abstractions" />
paket add FractalDataWorks.Web.Http.Abstractions --version 0.4.0-preview.6
#r "nuget: FractalDataWorks.Web.Http.Abstractions, 0.4.0-preview.6"
#:package FractalDataWorks.Web.Http.Abstractions@0.4.0-preview.6
#addin nuget:?package=FractalDataWorks.Web.Http.Abstractions&version=0.4.0-preview.6&prerelease
#tool nuget:?package=FractalDataWorks.Web.Http.Abstractions&version=0.4.0-preview.6&prerelease
FractalDataWorks.Web.Http.Abstractions
Core abstractions and TypeCollection definitions for HTTP-based web services in the FractalDataWorks platform. Provides endpoint types, security methods, and rate limiting policies using the TypeCollection pattern.
Installation
<PackageReference Include="FractalDataWorks.Web.Http.Abstractions" Version="1.0.0" />
Core Components
Endpoint Types
TypeCollection for categorizing HTTP endpoints. Each type defines default HTTP methods, caching behavior, and authentication requirements.
From EndpointTypes.cs:1-15:
[TypeCollection(typeof(EndpointTypeBase), typeof(IEndpointType), typeof(EndpointTypes))]
public partial class EndpointTypes : TypeCollectionBase<EndpointTypeBase, IEndpointType>
{
}
Available endpoint types:
| Type | Description | Default HTTP Methods | Requires Auth |
|---|---|---|---|
| CRUD | Create, Read, Update, Delete operations | GET, POST, PUT, DELETE, PATCH | Yes |
| Query | Read-only data retrieval | GET | No |
| Command | State-changing business operations | POST, PUT, PATCH | Yes |
| EventEndpoint | Event publishing and subscription | POST, GET | Yes |
| File | File upload/download operations | GET, POST, PUT, DELETE | Yes |
| Health | System health and monitoring | GET | No |
From CRUD.cs:11-28:
[TypeOption(typeof(EndpointTypes), "CRUD")]
public sealed class CRUD : EndpointTypeBase
{
public CRUD() : base(
id: 1,
name: "CRUD",
description: "Create, Read, Update, Delete operations for data management",
defaultHttpMethods: ["GET", "POST", "PUT", "DELETE", "PATCH"],
requiresAuthentication: true,
cachingStrategy: "NoCache",
isReadOnly: false,
supportsCaching: false,
defaultCacheDurationSeconds: null,
requiresValidation: true)
{
}
}
Security Methods
TypeCollection for authentication methods supported by the framework.
From SecurityMethods.cs:1-15:
[TypeCollection(typeof(SecurityMethodBase), typeof(ISecurityMethod), typeof(SecurityMethods))]
public partial class SecurityMethods : TypeCollectionBase<SecurityMethodBase, ISecurityMethod>
{
}
Available security methods:
| Method | Auth Scheme | Supports Token Refresh |
|---|---|---|
| None | (none) | No |
| JWT | Bearer | Yes |
| ApiKey | ApiKey | No |
| OAuth2 | Bearer | Yes |
| Certificate | Certificate | No |
From JWT.cs:11-17:
[TypeOption(typeof(SecurityMethods), "JWT")]
public sealed class JWT : SecurityMethodBase
{
public JWT() : base(2, "JWT", requiresAuthentication: true, authenticationScheme: "Bearer", supportsTokenRefresh: true) { }
}
Rate Limiting Policies
TypeCollection for rate limiting strategies.
From RateLimitPolicies.cs:1-15:
[TypeCollection(typeof(RateLimitPolicyBase), typeof(IRateLimitPolicy), typeof(RateLimitPolicies))]
public partial class RateLimitPolicies : TypeCollectionBase<RateLimitPolicyBase, IRateLimitPolicy>
{
}
Available policies:
| Policy | Max Requests | Window (sec) | Burst Support |
|---|---|---|---|
| None | unlimited | N/A | No |
| FixedWindow | 100 | 60 | No |
| SlidingWindow | 150 | 60 | Yes |
| TokenBucket | 50 | 10 | Yes |
| Concurrency | 10 | N/A | No |
Usage
Access type options through the TypeCollection ByName lookup method.
From EndpointDefaultSettings.cs:10-27:
using FractalDataWorks.Web.Http.Abstractions.Policies;
using FractalDataWorks.Web.Http.Abstractions.Security;
public record EndpointDefaultSettings(
string SecurityMethodName,
string RateLimitPolicyName,
int TimeoutMs,
long MaxBodySize,
bool RequireAuthentication,
string[] AllowedRoles)
{
public ISecurityMethod? SecurityMethod => SecurityMethods.ByName(SecurityMethodName);
public IRateLimitPolicy? RateLimitPolicy => RateLimitPolicies.ByName(RateLimitPolicyName);
};
From SecurityConfiguration.cs:24-30:
public string DefaultSecurityMethod { get; init; } = string.Empty;
public ISecurityMethod? DefaultSecurityMethodEnum => SecurityMethods.ByName(DefaultSecurityMethod);
Related Packages
FractalDataWorks.Web.RestEndpoints- Concrete endpoint implementations using these abstractionsFractalDataWorks.Collections- TypeCollection base types and attributes
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FluentValidation (>= 11.12.0)
- FractalDataWorks.Collections (>= 0.4.0-preview.6)
- FractalDataWorks.Messages (>= 0.4.0-preview.6)
- FractalDataWorks.Results (>= 0.4.0-preview.6)
- FractalDataWorks.Services.Abstractions (>= 0.4.0-preview.6)
- Microsoft.AspNetCore.Http (>= 2.3.0)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Options (>= 10.0.0)
- System.Collections.Immutable (>= 10.0.1)
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 |
|---|