RadEndpoints 1.0.0-alpha.3
See the version list below for details.
dotnet add package RadEndpoints --version 1.0.0-alpha.3
NuGet\Install-Package RadEndpoints -Version 1.0.0-alpha.3
<PackageReference Include="RadEndpoints" Version="1.0.0-alpha.3" />
paket add RadEndpoints --version 1.0.0-alpha.3
#r "nuget: RadEndpoints, 1.0.0-alpha.3"
// Install RadEndpoints as a Cake Addin #addin nuget:?package=RadEndpoints&version=1.0.0-alpha.3&prerelease // Install RadEndpoints as a Cake Tool #tool nuget:?package=RadEndpoints&version=1.0.0-alpha.3&prerelease
RadEndpoints
A lightweight API framework that embraces the power of Net Core Minimal APIs using a well-defined REPR Style (Request-Endpoint-Response) pattern. The framework aims to sprinkle syntactical sugar over Minimal Apis to facilitate a consistent endpoint building / testing / delivery workflow. A fast and easy developer experience is the #1 goal of this project.
While the framework appears to have strong opinions on endpoint structure on the surface, all of the helper/conveniences are virtually optional. Full Minimal Api functionality is preserved for more uncommon edge case or custom use case scenarios. As of now, this code is for experimental and educational purposes only.
Features:
Convenient Structured Endpoint Classes
- Less noisy configuration than original minimal api endpoints
- Override or extend endpoint abstractions to fit app specific conventions/contracts
- Constructor dependency injection
- Scoped lifetime
- Built-in HttpContext
- Built-in ILogger<EndpointName>
- Built-in IWebHostEnvironment
- Built in Response Object
- Built in Entity / Response Mapper (optional)
- IResult/TypedResult helpers
Assembly Scanning for Automatic Configuration of
- Endpoint classes
- Mapping classes
- Endpoint Filter Validators FluentValidation
Integration Testing
- WebApplicationFactory In-Memory Approach
- Strongly typed "Routeless" Test Helpers very convenient test development, maintanence and durability
- Clean and convenient response assertions for RadResponse / HttpResponse / ProblemDetails using FluentAssertions
- Detailed exception messages so you dig less to find test issues.
Example Api
- Lightweight api to demonstrate framework usage
- Includes example endpoints and integration tests
- Using feature based "vertical slice" style architecture (optional approach)
Coming Soon:
- Open Telemetry Endpoint Filters (Logging, Metrics, Traces)
- Unit test coverage for framework code
- Project item and api project templates
- CLI Tool w/Spectre.Console
- Nuget package
- Demo for Example API: observability infrastructure using Grafana / Prometheus / Zipkin / Kibana
- Demo for Example API: Bogus oriented test mocking service
- Demo Ephemeral Test Environment w/TestContainers
- Documentation / How Tos
Credits
This framework pays humble tribute to the FastEndpoints as it borrows many syntactical and developer experience concepts from it. Unless you're dead set on using Minimal APIs, I would highly recommend taking a look at that superior project which is actively maintained by a large community of contributors.
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. |
-
net8.0
- FluentValidation (>= 11.8.1)
- Microsoft.AspNetCore.OpenApi (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on RadEndpoints:
Package | Downloads |
---|---|
RadEndpoints.Testing
Make testing easier with RadEndpoints |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-alpha.11 | 44 | 11/26/2024 |
1.0.0-alpha.10 | 38 | 11/26/2024 |
1.0.0-alpha.9 | 41 | 11/15/2024 |
1.0.0-alpha.8 | 466 | 4/29/2024 |
1.0.0-alpha.7 | 54 | 4/29/2024 |
1.0.0-alpha.6 | 54 | 4/29/2024 |
1.0.0-alpha.5 | 56 | 4/28/2024 |
1.0.0-alpha.4 | 74 | 2/24/2024 |
1.0.0-alpha.3 | 60 | 2/23/2024 |
1.0.0-alpha.2 | 74 | 2/21/2024 |
1.0.0-alpha.1 | 68 | 2/21/2024 |