TL.MiddlewareLibrary
0.2.0
See the version list below for details.
dotnet add package TL.MiddlewareLibrary --version 0.2.0
NuGet\Install-Package TL.MiddlewareLibrary -Version 0.2.0
<PackageReference Include="TL.MiddlewareLibrary" Version="0.2.0" />
<PackageVersion Include="TL.MiddlewareLibrary" Version="0.2.0" />
<PackageReference Include="TL.MiddlewareLibrary" />
paket add TL.MiddlewareLibrary --version 0.2.0
#r "nuget: TL.MiddlewareLibrary, 0.2.0"
#:package TL.MiddlewareLibrary@0.2.0
#addin nuget:?package=TL.MiddlewareLibrary&version=0.2.0
#tool nuget:?package=TL.MiddlewareLibrary&version=0.2.0
🚀 TL.MiddlewareLibrary
SuÃte modular de middlewares para ASP.NET Core (.NET 8 e .NET 9): diagnóstico de latência com zero alocação, controle de taxa por IP, cache em memória com pooling e respostas estruturadas de erro no padrão RFC 7807 (ProblemDetails) integradas a TL.BaseContracts.
O TL.MiddlewareLibrary é uma biblioteca de infraestrutura transversal para o pipeline HTTP do ASP.NET Core, concebida para simplificar o desenvolvimento de APIs modernas, eliminar código defensivo repetitivo em controllers/endpoints e padronizar o tratamento de exceções de negócio e falhas não tratadas.
📦 Instalação
Adicione o pacote via .NET CLI:
dotnet add package TL.MiddlewareLibrary
🚀 Métodos de Extensão do Pipeline
| Extensão | Middleware | Descrição Resumida |
|---|---|---|
app.UseRequestTiming() |
RequestTimingMiddleware |
Mede a latência da requisição com zero alocação e injeta o header X-Response-Time-Ms. |
app.UseRateLimiting(limit, period) |
RateLimitingMiddleware |
Protege a API contra rajadas excessivas de chamadas por IP, retornando HTTP 429. |
app.UseAuthenticationMiddleware() |
AuthenticationMiddleware |
Validação ágil de cabeçalho Authorization no inÃcio do fluxo. |
app.UseCachingMiddleware(duration) |
CachingMiddleware |
Cache em memória transparente para requisições GET e HEAD (200 OK) com chave composta e pooling de buffers. |
app.UseExceptionHandling() / app.UseGlobalExceptionHandling() |
ExceptionHandlingMiddleware |
Captura global de exceções imprevistas, gerando resposta RFC 7807 amigável com traceId e X-Correlation-Id. |
app.UseStatusCodeMiddleware() |
StatusCodeMiddleware |
Mapeia exceções de domÃnio tipadas e contratos de erro (Error, ValidationError de TL.BaseContracts). |
💡 Exemplo Rápido de Uso
using TL.MiddlewareLibrary.Exceptions;
using TL.MiddlewareLibrary.Extensions;
using TL.BaseContracts;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMemoryCache();
var app = builder.Build();
app.UseRequestTiming();
app.UseRateLimiting(100, TimeSpan.FromMinutes(1));
app.UseCachingMiddleware(TimeSpan.FromMinutes(2));
app.UseExceptionHandling();
app.UseStatusCodeMiddleware();
app.MapGet("/api/clientes/{id}", (int id) =>
{
if (id <= 0)
throw new BadRequestException("O ID informado é inválido.");
return Results.Ok(new { id, nome = "Cliente Exemplo" });
});
app.Run();
📄 Licença
DistribuÃdo sob a licença MIT.
| 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 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. |
-
net8.0
- TL.BaseContracts (>= 0.2.0)
-
net9.0
- TL.BaseContracts (>= 0.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.