Routely 1.0.0
dotnet add package Routely --version 1.0.0
NuGet\Install-Package Routely -Version 1.0.0
<PackageReference Include="Routely" Version="1.0.0" />
<PackageVersion Include="Routely" Version="1.0.0" />
<PackageReference Include="Routely" />
paket add Routely --version 1.0.0
#r "nuget: Routely, 1.0.0"
#:package Routely@1.0.0
#addin nuget:?package=Routely&version=1.0.0
#tool nuget:?package=Routely&version=1.0.0
Routely
Routely is a senior-level, modular and extensible Minimal API Framework for ASP.NET Core (.NET 6+).
Inspired by Carter, it offers a clean modular routing structure with powerful built-in features such as:
- Route modules
- Result pattern with
ToIResult()
extensions - Global exception handling using
ProblemDetails
- Attribute-based endpoint filters
- Swagger/OpenAPI integration with versioning support
✨ Features
- ✅
RouteModule
abstraction with automatic discovery - ✅
Result<T>
+Result
classes for unified success/error flow - ✅ Extension methods to convert
Result
to ASP.NET CoreIResult
- ✅ Global exception handler using ProblemDetails standard
- ✅ Attribute-based middleware filters via
[Use(typeof(MyFilter))]
- ✅ OpenAPI (Swagger) support with API versioning
- ✅ Service registration via
IServiceRegistrar
📦 Installation
Coming soon as a NuGet package
For now, clone the repository and include the Routely
project in your solution.
🚀 Getting Started
1. Define a Module
public class ProductModule : RouteModule { public override string RoutePrefix ⇒ "/products";
public override void AddRoutes(IEndpointRouteBuilder app)
{
app.MapGet("/", () => Results.Ok(new[] { "Product A", "Product B" }));
}
}
- Register and Use Modules
var builder = WebApplication.CreateBuilder(args); builder.Services.AddRouteModules(typeof(ProductModule)); builder.AddSwaggerWithVersioning();
var app = builder.Build(); app.UseGlobalExceptionHandler(); app.MapRouteModules(); app.UseSwaggerWithUI(); app.Run();
Project Structure
Routely/ ├── Routing/ │ ├── RouteModule.cs │ ├── IRouteModule.cs │ └── EndpointRegistrar.cs ├── Results/ │ ├── Result.cs │ └── ResultExtensions.cs ├── Middleware/ │ ├── ExceptionHandlingMiddleware.cs │ ├── UseAttribute.cs │ └── IEndpointFilter.cs ├── Validation/ │ └── IValidator.cs ├── DependencyInjection/ │ └── IServiceRegistrar.cs └── Extensions/ └── ApplicationBuilderExtensions.cs
License
MIT © [Tunahan Ali Öztürk] 🙌 Contributions
Contributions are welcome! Feel free to open issues or submit PRs.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 was computed. 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. |
-
net9.0
- Microsoft.AspNetCore.Routing (>= 2.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.6)
- Swashbuckle.AspNetCore (>= 6.5.0)
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 | 135 | 7/2/2025 |