ETPackages.Endpoints 2.0.0

dotnet add package ETPackages.Endpoints --version 2.0.0
                    
NuGet\Install-Package ETPackages.Endpoints -Version 2.0.0
                    
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="ETPackages.Endpoints" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ETPackages.Endpoints" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ETPackages.Endpoints" />
                    
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 ETPackages.Endpoints --version 2.0.0
                    
#r "nuget: ETPackages.Endpoints, 2.0.0"
                    
#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 ETPackages.Endpoints@2.0.0
                    
#: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=ETPackages.Endpoints&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ETPackages.Endpoints&version=2.0.0
                    
Install as a Cake Tool

๐Ÿ“Œ ETPackages.Endpoints

Build & Publish NuGet Version NuGet Downloads Target Frameworks

ETPackages.Endpoints is a lightweight extension library designed to make .NET 6+ Minimal API endpoints more readable, organized, and reusable.


โœจ Features

  • โœ… Minimal API support
  • โœ… Define endpoints in separate classes implementing IEndpoint
  • โœ… Auto-discover and map endpoints with AddEndpoints() and MapEndpoints()
  • โœ… Support for single or multiple assemblies
  • โœ… Cleaner code with extension methods
  • โœ… Easily testable and extendable
  • โœ… Full Swagger / OpenAPI compatibility

โœจ Why use ETPackages.Endpoints?

  • Cleaner Program.cs
    No more huge lists of app.MapGet(...) calls.
  • Separation of concerns
    Each endpoint lives in its own class.
  • Auto-discovery
    Endpoints are automatically discovered and mapped.
  • Testability
    Endpoints can be tested independently.
  • Scalability
    Easy to maintain even in large projects.

๐Ÿ“‹ Requirements

  • .NET 6.0 or higher

๐Ÿ“ฆ Installation

Install via NuGet:

Install-Package ETPackages.Endpoints

Or via the .NET Core command line interface:

dotnet add package ETPackages.Endpoints

๐Ÿš€ Usage

using ETPackages.Endpoints;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddEndpoints(typeof(Program).Assembly);

var app = builder.Build();

// Use the extension method to map endpoints
app.MapEndpoints();

app.Run();


๐Ÿ“‚ Example Endpoint Group

using Microsoft.AspNetCore.Routing;
using ETPackages.Endpoints;

public class UserEndpoints : IEndpoint
{
    public void MapEndpoints(IEndpointRouteBuilder builder)
    {
        var group = builder
            .MapGroup("/users")
            .WithTags("Users");

        group.MapGet("/", () => Results.Ok("Get all users"));

        group.MapPost("/", () => Results.Ok("Create user"));
    }
}


๐Ÿงช Running Tests

This project includes a dedicated test project located in:

tests/ETPackages.Endpoints.Tests

Run all tests

dotnet test

Run tests with detailed output

dotnet test -v n

Run a specific test class

dotnet test --filter "FullyQualifiedName~ETPackages.Endpoints.Tests.EndpointTests"

Notes

  • Tests use xUnit + FluentAssertions for better readability.
  • Microsoft.AspNetCore.Mvc.Testing and TestServer are used to run in-memory Minimal API applications.
  • Covered scenarios:
    • Endpoint discovery (AddEndpoints)
    • Single & multiple endpoints mapping
    • Duplicate endpoint conflict
    • No endpoints case (graceful handling)

๐Ÿค Contributing

Fork the repository

Create a new branch (feature/xyz)

Commit your changes

Open a pull request


๐Ÿ“œ License

This project is licensed under the MIT License. ,

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

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
2.0.0 236 11/24/2025
1.0.1 224 9/28/2025
1.0.0 191 9/26/2025

- Test codes added