Quantum.Web
1.0.1
dotnet add package Quantum.Web --version 1.0.1
NuGet\Install-Package Quantum.Web -Version 1.0.1
<PackageReference Include="Quantum.Web" Version="1.0.1" />
<PackageVersion Include="Quantum.Web" Version="1.0.1" />
<PackageReference Include="Quantum.Web" />
paket add Quantum.Web --version 1.0.1
#r "nuget: Quantum.Web, 1.0.1"
#:package Quantum.Web@1.0.1
#addin nuget:?package=Quantum.Web&version=1.0.1
#tool nuget:?package=Quantum.Web&version=1.0.1
Quantum.Web
Quantum.Web es una librería para el ecosistema Quantum que contiene un conjunto de herramientas, middlewares y clases base para acelerar drásticamente el desarrollo de APIs web robustas y consistentes con ASP.NET Core.
✨ Características Principales (v1.0.0)
- Manejo de Excepciones Global: Un middleware que captura automáticamente todos los errores no controlados y devuelve una respuesta JSON estandarizada y segura.
- Logging de Peticiones Automático: Un middleware que registra cada petición HTTP y su respuesta, incluyendo método, ruta, código de estado y tiempo de ejecución.
- Controlador Base (
BaseApiController): Una clase base para tus controladores que proporciona:- Acceso fácil a los claims del usuario (ej.
CurrentUserId) a partir de un token JWT. - Métodos
HandleResult()para estandarizar las respuestas de la API usando el patrónResultdeQuantum.Core.
- Acceso fácil a los claims del usuario (ej.
- Configurador de CORS Simplificado: Habilita y configura las políticas de CORS con una sola línea de código, leyendo los orígenes permitidos desde
appsettings.json. - Parser de Peticiones (
ApiRequestParser): Extrae y parsea de forma inteligente los parámetros de la ruta, query string y cuerpo de una petición HTTP.
🚀 Uso
1. Configurar appsettings.json
Añade una sección para las configuraciones opcionales, como CORS.
{
"Quantum": {
"Web": {
"Cors": {
"AllowedOrigins": "http://localhost:4200,[https://mi-frontend.com](https://mi-frontend.com)"
}
}
}
}
2. Activar en Program.cs
Con los métodos de extensión, la configuración completa de la librería se realiza en solo dos líneas.
using Quantum.Web.Extensions;
var builder = WebApplication.CreateBuilder(args);
// --- REGISTRAR SERVICIOS DE QUANTUM.WEB ---
builder.Services.AddQuantumWeb();
builder.Services.AddQuantumCors(builder.Configuration); // Opcional, para CORS
builder.Services.AddControllers();
// ...
var app = builder.Build();
// --- USAR MIDDLEWARES DE QUANTUM.WEB ---
// Es importante el orden. El manejador de excepciones primero.
app.UseQuantumWeb();
app.UseHttpsRedirection();
app.UseCors(); // <-- Activar CORS si se configuró
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
3. Heredar de BaseApiController
Haz que tus controladores hereden de BaseApiController para acceder a sus funcionalidades.
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Quantum.Core.Results;
using Quantum.Web.Controllers; // <-- Añadir using
[Authorize] // Asegura que el usuario esté autenticado
public class ProductosController : BaseApiController // <-- Heredar
{
private readonly IProductoService _productoService;
public ProductosController(IProductoService productoService)
{
_productoService = productoService;
}
[HttpGet("{id}")]
public async Task<IActionResult> GetById(int id)
{
// 1. Acceder al ID del usuario desde el token JWT
int usuarioId = CurrentUserId;
// 2. Llamar al servicio, que devuelve un objeto Result
Result<ProductoDto> resultado = await _productoService.ObtenerPorId(id, usuarioId);
// 3. Usar HandleResult para devolver una respuesta estandarizada
return HandleResult(resultado);
}
}
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT.
| 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.Http.Abstractions (>= 2.3.0)
- Microsoft.AspNetCore.Http.Extensions (>= 2.3.0)
- Quantum.Data.Common (>= 1.0.0)
- Quantum.Security.JWT (>= 1.0.1)
- Quantum.Validation (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Versión 1.0.0: Lanzamiento inicial de la librería Quantum.Web.
- Middleware de manejo de excepciones global.
- Middleware para logging de peticiones HTTP.
- Controlador base (BaseApiController) con helpers para el patrón Result y acceso a claims.
- Configurador de directivas CORS.
- Parser avanzado de peticiones HTTP (ApiRequestParser).