RadEndpoints.Testing 1.0.0-alpha.1

This is a prerelease version of RadEndpoints.Testing.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package RadEndpoints.Testing --version 1.0.0-alpha.1                
NuGet\Install-Package RadEndpoints.Testing -Version 1.0.0-alpha.1                
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="RadEndpoints.Testing" Version="1.0.0-alpha.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RadEndpoints.Testing --version 1.0.0-alpha.1                
#r "nuget: RadEndpoints.Testing, 1.0.0-alpha.1"                
#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.
// Install RadEndpoints.Testing as a Cake Addin
#addin nuget:?package=RadEndpoints.Testing&version=1.0.0-alpha.1&prerelease

// Install RadEndpoints.Testing as a Cake Tool
#tool nuget:?package=RadEndpoints.Testing&version=1.0.0-alpha.1&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
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 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. 
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
1.0.0-alpha.8 123 4/29/2024
1.0.0-alpha.5 54 4/28/2024
1.0.0-alpha.4 81 2/24/2024
1.0.0-alpha.3 59 2/23/2024
1.0.0-alpha.2 63 2/21/2024
1.0.0-alpha.1 60 2/21/2024