CShells.FastEndpoints 0.0.29

CShells.FastEndpoints

FastEndpoints integration for CShells providing automatic endpoint discovery and registration for shell features.

Purpose

This package integrates FastEndpoints with CShells, allowing you to build high-performance APIs with per-shell endpoint isolation and configuration.

Key Features

  • Automatic FastEndpoints discovery - Endpoints are discovered from features implementing IFastEndpointsShellFeature
  • Per-shell endpoint isolation - Each shell has its own set of FastEndpoints
  • Shell-scoped route prefix - Configure EndpointRoutePrefix per shell for FastEndpoints-specific prefixing
  • Configurator support - Implement IFastEndpointsConfigurator for custom FastEndpoints configuration

Installation

dotnet add package CShells.FastEndpoints

Quick Start

1. Create a FastEndpoints Feature

using CShells.FastEndpoints.Features;
using CShells.Features;
using Microsoft.Extensions.DependencyInjection;

[ShellFeature("MyApi", DependsOn = ["FastEndpoints"])]
public class MyApiFeature : IFastEndpointsShellFeature
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSingleton<IMyService, MyService>();
    }
}

2. Create an Endpoint

using FastEndpoints;

public class GetWeatherEndpoint : EndpointWithoutRequest<WeatherResponse>
{
    public override void Configure()
    {
        Get("weather");
        AllowAnonymous();
    }

    public override async Task HandleAsync(CancellationToken ct)
    {
        await SendAsync(new WeatherResponse { Temperature = 72 });
    }
}

3. Configure Shell

{
  "CShells": {
    "Shells": {
      "Default": {
        "Features": { "Core": {}, "FastEndpoints": {}, "MyApi": {} },
        "Configuration": {
          "WebRouting": {
            "Path": "",
            "RoutePrefix": "api/v1"
          },
          "FastEndpoints": {
            "EndpointRoutePrefix": "fe"
          }
        }
      }
    }
  }
}

With this configuration, the weather endpoint is accessible at /api/v1/fe/weather.

Configuration

Route Prefixes

CShells.FastEndpoints supports two levels of route prefixing:

Configuration Key Scope Description
WebRouting:RoutePrefix All endpoints Applied to all shell endpoints (minimal APIs, controllers, FastEndpoints)
FastEndpoints:EndpointRoutePrefix FastEndpoints only Applied specifically to FastEndpoints via config.Endpoints.RoutePrefix

Custom Configurators

Implement IFastEndpointsConfigurator to customize FastEndpoints configuration:

public class MyConfigurator : IFastEndpointsConfigurator
{
    public void Configure(Config config)
    {
        config.Serializer.Options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    }
}

Register in your feature:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<IFastEndpointsConfigurator, MyConfigurator>();
}
  • CShells.FastEndpoints.Abstractions - Interfaces for feature libraries (reference this in your feature projects)
  • CShells.AspNetCore - Required for web routing and endpoint registration

Further Reading

Showing the top 20 packages that depend on CShells.FastEndpoints.

Packages Downloads
Elsa.Api.Common
Provides common features to modules that expose API endpoints.
2
Elsa.Api.Common
Provides common features to modules that expose API endpoints.
4
Elsa.Api.Common
Provides common features to modules that expose API endpoints.
5

Version Downloads Last updated
0.0.29 2 09/27/2026
0.0.28 2 09/07/2026
0.0.27 2 09/07/2026
0.0.26 2 09/07/2026
0.0.25 2 09/07/2026
0.0.24 3 09/07/2026
0.0.23 2 09/07/2026
0.0.22 2 09/07/2026
0.0.21 2 09/07/2026
0.0.20 2 09/07/2026
0.0.19 2 09/07/2026
0.0.18 2 09/07/2026
0.0.17 2 09/07/2026
0.0.16 2 09/07/2026
0.0.15 2 09/07/2026
0.0.14 2 09/07/2026
0.0.13 2 09/07/2026
0.0.12 2 09/07/2026
0.0.11 2 09/07/2026
0.0.10 2 09/07/2026
0.0.9 3 09/07/2026
0.0.8 2 09/07/2026
0.0.7 2 09/07/2026
0.0.6 2 09/07/2026