CShells.FastEndpoints
0.0.10
See the version list below for details.
dotnet add package CShells.FastEndpoints --version 0.0.10
NuGet\Install-Package CShells.FastEndpoints -Version 0.0.10
<PackageReference Include="CShells.FastEndpoints" Version="0.0.10" />
<PackageVersion Include="CShells.FastEndpoints" Version="0.0.10" />
<PackageReference Include="CShells.FastEndpoints" />
paket add CShells.FastEndpoints --version 0.0.10
#r "nuget: CShells.FastEndpoints, 0.0.10"
#:package CShells.FastEndpoints@0.0.10
#addin nuget:?package=CShells.FastEndpoints&version=0.0.10
#tool nuget:?package=CShells.FastEndpoints&version=0.0.10
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
EndpointRoutePrefixper shell for FastEndpoints-specific prefixing - Configurator support - Implement
IFastEndpointsConfiguratorfor 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": [
{
"Name": "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>();
}
Related Packages
- CShells.FastEndpoints.Abstractions - Interfaces for feature libraries (reference this in your feature projects)
- CShells.AspNetCore - Required for web routing and endpoint registration
Further Reading
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 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 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
- CShells.AspNetCore (>= 0.0.10)
- CShells.FastEndpoints.Abstractions (>= 0.0.10)
- FastEndpoints (>= 7.2.0)
- JetBrains.Annotations (>= 2025.2.4)
-
net8.0
- CShells.AspNetCore (>= 0.0.10)
- CShells.FastEndpoints.Abstractions (>= 0.0.10)
- FastEndpoints (>= 7.0.0)
- JetBrains.Annotations (>= 2025.2.4)
-
net9.0
- CShells.AspNetCore (>= 0.0.10)
- CShells.FastEndpoints.Abstractions (>= 0.0.10)
- FastEndpoints (>= 7.0.0)
- JetBrains.Annotations (>= 2025.2.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.