Cuando creas una Web API en .NET 10, la plantilla genera una estructura base que conviene entender antes de escribir cualquier endpoint. Aprenderás qué hace cada archivo del proyecto, por qué existe la carpeta Controllers y cuándo te conviene usar la plantilla de Minimal API en lugar de la versión con controladores.
¿Qué archivos trae por defecto un proyecto Web API en .NET?
La plantilla genera varios archivos que cumplen funciones específicas dentro del ciclo de configuración y ejecución de tu API.
- Archivo de proyecto (.csproj): tiene estructura XML y define el SDK base, la versión de .NET (en este caso 10), configuraciones de C# y los paquetes instalados, como el de OpenAPI para documentación [01:00].
- appsettings.json: el archivo central de configuración. Aquí colocas variables de entorno, cadenas de conexión a base de datos, claves para generar JSON Web Tokens y credenciales de servicios externos como AWS o Azure [01:30].
- appsettings.Development.json: versión específica para desarrollo. Puedes crear archivos equivalentes para testing o producción según el ambiente [02:00].
- Archivo .http: novedad que viene por defecto en .NET 10 y permite probar endpoints sin herramientas externas como Postman [02:30].
- Program.cs: archivo donde se configura y se ejecuta la API.
¿Para qué sirve appsettings.json en .NET? Es el archivo donde defines configuraciones como cadenas de conexión, claves de autenticación y conexiones a servicios externos. Permite tener versiones distintas por ambiente (desarrollo, testing, producción).
¿Cómo funciona Program.cs y el patrón builder?
El archivo Program.cs ejecuta métodos uno tras otro para configurar la API y termina con run para levantarla. Por defecto agrega la configuración de controladores, OpenAPI y una condición para que la documentación solo funcione en development [03:00].
Este archivo usa el patrón builder, por eso encuentras la variable builder que va encadenando métodos hasta construir el objeto final. Es un patrón muy común en código cuando necesitas armar un objeto con condiciones y características particulares.
¿Por qué .NET usa el patrón MVC en sus APIs?
.NET, como otros frameworks web, sigue el patrón MVC (Model-View-Controller). Cada parte tiene una responsabilidad clara:
- View: la interfaz gráfica con la que interactúa el usuario.
- Controller: maneja las acciones que ocurren en la interfaz.
- Model: guarda y representa los datos.
Pero en una API no hay interfaz gráfica. Las apps en React, Angular o aplicaciones móviles son las que consumen la API. Por eso .NET usa MVC sin la V: solo quedan Controller y Model [04:30].
Las ejecuciones se hacen mediante URLs que llaman al endpoint, accionan el controlador, este procesa la solicitud y devuelve la información a través del modelo, normalmente en formato JSON, aunque también puede devolver XML o archivos.
¿Qué hace un Controller en .NET?
Cada controlador es una clase que maneja los endpoints de tu API. Usa dos atributos clave:
[ApiController]: indica que la clase es un controlador de API.
[Route]: define el manejo de las rutas.
El controlador WeatherForecast que viene por defecto crea una colección estática de datos y, dentro de su método GET, genera valores aleatorios solo como prueba [05:30].
¿Cuándo conviene usar Minimal API en .NET?
.NET ofrece una plantilla más ligera llamada Minimal API, pensada para proyectos pequeños o con responsabilidad específica. Para crearla, al generar el proyecto debes desmarcar la opción "Use Controllers" [06:30].
Al hacerlo, la carpeta Controllers desaparece y toda la lógica vive dentro de Program.cs. Las rutas se mapean con métodos como:
MapGet para peticiones GET.
MapPost para crear recursos.
MapDelete para eliminar.
- Cualquier otra acción HTTP estándar.
La lógica dentro es idéntica a la de un controlador, pero con menos código y estructura. Minimal API tiene mejor rendimiento al quitar la complejidad de los controladores [07:30].
¿Cuál es la diferencia entre Web API con controladores y Minimal API? Los controladores son ideales para proyectos complejos con autenticación avanzada y mucha lógica. Minimal API es más rápida y simple, perfecta para demos, microservicios o APIs con responsabilidad acotada.
¿Qué ejemplo real existe de una Minimal API?
API Colombia es una API open source de datos abiertos sobre Colombia: departamentos, mapas, especies invasoras, aeropuertos, radios, días festivos y más [08:30]. Solo provee información, no inserta ni elimina, por eso se construyó con la plantilla de Minimal API. Puedes revisar el proyecto en GitHub para ver lo simple y rápida que resulta su estructura.
Para escenarios más comunes, donde necesites autenticación avanzada, mayor seguridad o lógica más compleja, los controladores siguen siendo la mejor opción.
Como reto, crea una Minimal API que devuelva en su endpoint la hora actual del servidor. Es un ejercicio corto que te ayudará a entender cómo funciona esta plantilla y en qué casos puedes aprovecharla. ¿Te animas a compartir tu solución en los comentarios?