Ir al contenido principal

🚀 Minimal APIs en .NET 7: Una Guía Detallada para Desarrolladores Intermedios

Introducción a Minimal APIs en .NET 7

🚀 Minimal APIs en .NET 7: Una Guía Detallada para Desarrolladores Intermedios

¡Adéntrate en el mundo de las Minimal APIs en .NET 7! Esta guía integral te llevará desde los conceptos básicos hasta ejemplos avanzados, brindándote el conocimiento y las habilidades necesarias para crear API web ligeras y eficientes.

🚀 Introducción a Minimal APIs en .NET 7

Las Minimal APIs, introducidas en .NET 7, son una nueva y emocionante forma de crear API web en la plataforma .NET. Siguiendo los principios de simplicidad y rendimiento, las Minimal APIs están diseñadas para ser ligeras, eficientes y fáciles de usar.

En esta guía, exploraremos los conceptos fundamentales de las Minimal APIs, desde su arquitectura hasta su implementación práctica. También proporcionaremos ejemplos avanzados y mejores prácticas para ayudarte a aprovechar al máximo esta poderosa tecnología.

💡 Fundamentos y Conceptos Clave

¿Qué son las Minimal APIs?

Las Minimal APIs son un enfoque minimalista para crear API web en .NET. Están diseñadas para ser lo más simples y ligeras posible, eliminando la sobrecarga y la complejidad de los marcos tradicionales de API web.

Las Minimal APIs se basan en el concepto de enrutamiento basado en delegados, donde los métodos de controlador se mapean directamente a rutas HTTP. Esto proporciona un enfoque más directo y de bajo nivel para crear API.

Ventajas de las Minimal APIs

  • Ligereza y rendimiento: Las Minimal APIs son extremadamente ligeras y eficientes, lo que las hace ideales para aplicaciones que requieren un alto rendimiento.
  • Simplicidad y facilidad de uso: La interfaz de programación de Minimal APIs es sencilla e intuitiva, lo que facilita el desarrollo y mantenimiento de API.
  • Enrutamiento basado en delegados: El enfoque de enrutamiento basado en delegados proporciona un control granular sobre el enrutamiento de solicitudes, lo que permite una mayor flexibilidad.
  • Inyección de dependencias integrada: Las Minimal APIs admiten la inyección de dependencias, lo que permite desacoplar los componentes de la API y mejorar la testabilidad.

⚙️ Implementación Práctica

Creando una Minimal API

Crear una Minimal API es sencillo. Aquí tienes un ejemplo básico:

using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }); } public class Startup { public void ConfigureServices(IServiceCollection services) { // Añade servicios aquí } public void Configure(IApplicationBuilder app) { app.MapGet("/", () => "Hola, mundo!"); } }

Este código crea una Minimal API que responde a las solicitudes GET en la ruta raíz con el mensaje "Hola, mundo!".

Rutas y Controladores

Las Minimal APIs utilizan el enrutamiento basado en delegados para mapear las rutas HTTP a los métodos del controlador. Aquí tienes un ejemplo de cómo crear un controlador para manejar las solicitudes de productos:

using Microsoft.AspNetCore.Mvc; [Route("api/[controller]")] [ApiController] public class ProductsController : ControllerBase { [HttpGet] public IEnumerable GetProducts() { // Obtener productos de una base de datos } [HttpGet("{id}")] public Product GetProduct(int id) { // Obtener producto por id } }

Inyección de Dependencias

Las Minimal APIs admiten la inyección de dependencias, lo que permite desacoplar los componentes de la API. Aquí tienes un ejemplo de cómo inyectar un servicio de base de datos:

using Microsoft.Extensions.DependencyInjection; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddScoped(); } public void Configure(IApplicationBuilder app) { // ... } } public class ProductsController : ControllerBase { private readonly IDatabaseService _databaseService; public ProductsController(IDatabaseService databaseService) { _databaseService = databaseService; } [HttpGet] public IEnumerable GetProducts() { return _databaseService.GetProducts(); } }

Comentarios

Entradas populares de este blog

Formatos con String.Format en C#

Todas las aplicaciones que desarrollamos en algún momento necesitan formatear algún tipo de datos, y no se a ustedes pero a mi siempre se me olvidan los formatos y como obtener los resultados de una u otra forma, es por eso que decidí hacer este post, y recopilar la mayor cantidad de formatos posibles, para buscarlos cuando necesite y ustedes puedan copiarlos ;=). Para formatear cadenas existe una clase especializada en el manejo de cadenas, esta clase se llama String, su nombre completo es System.String, ya que se encuentra en el namespace System. En esta clase vamos a encontrar una función llamada Format que se encargará de reemplazar el valor de un dato (entero, real, una cadena, un carácter, hasta de un objeto), por el formato que se especifique en el parámetro. En forma general, y aunque tiene varias sobrecargas, String.Format tiene la siguiente sintaxis: Formatos para números:   Tipo ...

Subir archivos al servidor

 Muchas veces necesitamos que nuestros usuarios puedan subir archivos al servidor  ya sean imágenes,pdf, rar,zip,etc, y es común que quieran encontrar métodos fáciles y agiles para realizar esto. Es por eso que hoy les traigo un post donde les enseñare a crear una aplicación en ASP.NEET Y C# para que puedan subir archivos a una carpeta del servidor. Es muy simple, pero vaya que nos es útil, y más cuando es para satisfacer las necesidades de nuestro cliente. Sin hablar más aquí vamos: Lo primero que haremos es crear una aplicación en Visual Studio - ASP.NET y escogeremos como lenguaje C#, luego agregaremos una nueva WebPage y agregaremos los siguientes controles: FileUpload – Label - Boton Le cambiaremos los id de los controles  y les pondremos nombres descriptivos por aquello de las Buenas practicas de programación. La propiedad Text del botón le pondremos “Enviar”. Crearemos una carpeta en el server que se llame “Archivos” para esto daremos Click derecho en el e...

Hora Militar o Formato 24 Horas en SQL SERVER

Es curioso los problemas que nos encontramos a diario al desarrollar, siempre resulta que hay algo nuevo y algo que no sabemos, aprendemos día a día con cada cosa que hacemos, y cada código que escribimos. El día de hoy les traigo una instrucción que si bien es muy sencilla, puede ahorrarnos varias horas de búsqueda infructuosa en san google. Se trata de convertir una hora en sql server al formato militar o formato de 24 horas. Para esto tenemos varias formas: SELECT CONVERT(VARCHAR(8), dateadd(HOUR,12, cast('2017-01-01 10:15:00' as datetime)), 108) AS HoraMilitar Veamos lo que se hace en la instrucción anterior: Tenemos la fecha y hora: 2017-01-01 10:15:00 la cual convertimos a datetime cast('2017-01-01 10:15:00' as datetime) luego le sumamos 12 horas para ejemplificar el ejercicio "dateadd(HOUR,12," y por ultimo pasamos a varchar para darle formato militar CONVERT(VARCHAR(8), "Aquí la fecha",108) Notese que uso el código 108 de con...