Vicen Moreno

Pro Googler

Follow me on GitHub

Minimal APIs en .NET 8 - Nuevas capacidades que debes conocer

.NET 8 trae mejoras significativas a las Minimal APIs que las hacen aún más potentes

¿Qué son las Minimal APIs?

Las Minimal APIs llegaron con .NET 6 como una forma simplificada de crear APIs HTTP sin necesidad de controladores. Con .NET 8, Microsoft ha dado un paso más allá mejorando significativamente esta funcionalidad.

Nuevas características en .NET 8 🚀

1. Soporte mejorado para formularios

Ahora podemos trabajar con formularios de manera nativa:

app.MapPost("/upload", async (IFormFile file) =>
{
    var filePath = Path.Combine("uploads", file.FileName);
    using var stream = File.OpenWrite(filePath);
    await file.CopyToAsync(stream);

    return Results.Ok(new { fileName = file.FileName, size = file.Length });
});

2. Filtros de endpoint

Una de las mejoras más esperadas. Ahora podemos añadir filtros personalizados a nuestros endpoints:

app.MapGet("/api/products", async (ProductService service) =>
{
    return await service.GetAllAsync();
})
.AddEndpointFilter(async (context, next) =>
{
    // Lógica antes del endpoint
    var result = await next(context);
    // Lógica después del endpoint
    return result;
});

3. Antiforgery tokens nativos

La seguridad mejora con soporte incorporado para tokens antiforgery:

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAntiforgery();

var app = builder.Build();
app.UseAntiforgery();

app.MapPost("/api/data", (DataModel data) =>
{
    // El token se valida automáticamente
    return Results.Ok();
})
.RequireAntiforgeryToken();

Comparativa con controladores tradicionales

Las Minimal APIs ahora están al mismo nivel de funcionalidad que los controladores tradicionales pero con menos ceremonía:

Característica Controllers Minimal APIs (.NET 8)
Routing
Model Binding
Validation
Filters
Código necesario 🟡 Alto 🟢 Bajo

¿Cuándo usar Minimal APIs?

En mi experiencia, las Minimal APIs son ideales para:

  • Microservicios donde la simplicidad es clave
  • APIs pequeñas con pocos endpoints
  • Prototipos rápidos que luego se pueden migrar
  • Backends simples para aplicaciones móviles o SPAs

Para aplicaciones grandes con muchos endpoints, los controladores tradicionales pueden seguir siendo más organizados.

Migración desde .NET 6/7

La migración es prácticamente transparente. La mayor parte del código de Minimal APIs de versiones anteriores funciona sin cambios, pero ahora tienes acceso a estas nuevas capacidades.

Conclusión

.NET 8 ha cerrado la brecha entre Minimal APIs y controladores tradicionales. La elección ahora depende más del estilo de código que prefieras que de las capacidades técnicas.

Si aún no has probado las Minimal APIs en .NET 8, te recomiendo encarecidamente que lo hagas. La productividad que se gana es considerable.

¿Ya estás usando .NET 8? ¿Qué te parecen estas mejoras? Me encantaría conocer tu opinión.

¡Hasta la próxima! 👋


 Anterior      Posterior

Por Vicente José Moreno Escobar el 5 de febrero de 2024
Archivado en: .NET   ASP.NET-Core   APIs



Puedes disfrutar de otros artículos como éste en el archivo del sitio.