FractalDataWorks.Web.RestEndpoints 0.7.0-alpha.1022

This is a prerelease version of FractalDataWorks.Web.RestEndpoints.
dotnet add package FractalDataWorks.Web.RestEndpoints --version 0.7.0-alpha.1022
                    
NuGet\Install-Package FractalDataWorks.Web.RestEndpoints -Version 0.7.0-alpha.1022
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FractalDataWorks.Web.RestEndpoints" Version="0.7.0-alpha.1022" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FractalDataWorks.Web.RestEndpoints" Version="0.7.0-alpha.1022" />
                    
Directory.Packages.props
<PackageReference Include="FractalDataWorks.Web.RestEndpoints" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FractalDataWorks.Web.RestEndpoints --version 0.7.0-alpha.1022
                    
#r "nuget: FractalDataWorks.Web.RestEndpoints, 0.7.0-alpha.1022"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FractalDataWorks.Web.RestEndpoints@0.7.0-alpha.1022
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FractalDataWorks.Web.RestEndpoints&version=0.7.0-alpha.1022&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FractalDataWorks.Web.RestEndpoints&version=0.7.0-alpha.1022&prerelease
                    
Install as a Cake Tool

FractalDataWorks.Web.RestEndpoints

This package provides concrete implementations of REST endpoint patterns using FastEndpoints, building on the abstractions defined in FractalDataWorks.Web.Http.Abstractions.

Features

  • FastEndpoints Integration: Built on the high-performance FastEndpoints framework
  • FractalDataWorks Pattern Compliance: Implements FractalDataWorks web service patterns and conventions
  • Configuration-Driven: Extensive configuration options for endpoint behavior
  • Security Integration: Built-in security method implementations
  • Pagination Support: Comprehensive pagination with streaming and paged responses

Core Components

Base Endpoint Classes

  • FractalEndpoint: Base class for endpoints returning GenericResult<T> responses
  • QueryEndpoint: Specialized base for read-only query operations
  • CrudEndpoint: Base for Create, Read, Update, Delete operations
  • FileEndpoint: Base for file upload/download operations

Configuration System

  • WebConfiguration: Main configuration class for web services
  • SecurityConfiguration: Security-related configuration options
  • EndpointDefaults: Default settings for different endpoint types
  • ApiKeySecurityConfiguration: API key authentication configuration

Pagination

  • PagedRequest: Request model for paginated data
  • PagedResponse<T>: Response model for paginated results
  • StreamingRequest: Request model for streaming data
  • StreamingResponse<T>: Response model for streaming results

Installation

<PackageReference Include="FractalDataWorks.Web.RestEndpoints" Version="1.0.0" />

Usage

Basic Endpoint Implementation

public class GetUsersEndpoint : QueryEndpoint<GetUsersRequest, PagedResponse<User>>
{
    public override void Configure()
    {
        Get("/users");
        Summary(s => s.Summary = "Get paginated list of users");
    }

    public override async Task<PagedResponse<User>> ExecuteAsync(GetUsersRequest req, CancellationToken ct)
    {
        // Implementation here
        return new PagedResponse<User>();
    }
}

Configuration Setup

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddFractalDataWorksWeb(configuration =>
        {
            configuration.EnableApiKeyAuthentication();
            configuration.ConfigureRateLimiting();
            configuration.EnablePagination();
        });
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseFractalDataWorksWeb();
        app.UseFractalDataWorksEndpoints();
    }
}

Extension Methods

  • UseFractalDataWorksWeb(): Core FractalDataWorks web middleware setup
  • UseFractalDataWorksEndpoints(): Endpoint discovery and registration
  • UseFractalDataWorksAuthentication(): Authentication middleware setup
  • UseFractalDataWorksRateLimiting(): Rate limiting middleware setup

Integration

  • Builds on FractalDataWorks.Web.Http.Abstractions for type definitions
  • Integrates with FractalDataWorks.Configuration for configuration management
  • Uses FractalDataWorks.Services for service layer patterns
  • Supports FractalDataWorks.Results for consistent response patterns

Build Status

This project builds successfully with warnings related to TODO items and string comparisons.

Current Implementation Status

  • Core Infrastructure: ✅ Implemented
  • Base Endpoint Classes: ✅ Implemented
  • Configuration System: ⚠️ Partially implemented (many TODOs)
  • Security Integration: ⚠️ TODO items remain
  • Middleware Pipeline: ⚠️ TODO items remain
  • Pagination: ✅ Implemented

Test Coverage

Current test status: Basic functionality tested

  • Configuration validation tests
  • Pagination request/response tests
  • Base endpoint functionality tests
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.7.0-alpha.1022 126 11/3/2025
0.7.0-alpha.1021 127 11/3/2025
0.7.0-alpha.1008 101 11/2/2025
0.7.0-alpha.1006 131 10/30/2025
0.7.0-alpha.1005 131 10/30/2025
0.7.0-alpha.1004 127 10/30/2025
0.7.0-alpha.1001 134 10/29/2025
0.6.0-alpha.1006 128 10/29/2025
0.6.0-alpha.1005 130 10/28/2025
0.6.0-alpha.1004 122 10/28/2025
0.6.0-alpha.1002 127 10/28/2025