Contenido del curso
Estructura de una Web API
- 7

Cómo configurar CORS en APIs de .NET
07:08 min - 8

Rutas en APIs .NET con parámetros
Viendo ahora - 9

Swagger y Scalar para documentar APIs en .NET
14:25 min - 10

Cómo funciona el pipeline de middlewares en ASP.NET
10:30 min - 11

Inyección de dependencias y logging en .NET
09:18 min - 12

Autenticación básica en APIs con middleware .NET
08:17 min
Arquitectura y Middlewares
- 13

Cómo configurar Entity Framework Core en .NET
07:31 min - 14

Modelos User y TaskItem con Fluent API
10:00 min - 15

Servicios en .NET con Entity Framework
13:51 min - 16

Controladores GET, POST y 201 en .NET
14:46 min - 17

Conectar .NET con SQL Server usando Entity Framework
09:51 min - 18

Conectar API .NET a Postgres con Entity Framework
06:57 min - 19

Cómo estructurar Clean Architecture en .NET
09:07 min - 20

Pruebas unitarias en .NET con Copilot
09:05 min - 21

Qué aprender después de APIs con .NET
02:16 min
Rutas en APIs .NET con parámetros
Resumen
Domina el manejo de rutas en APIs .NET con un enfoque práctico: desde configurar la ruta base con el atributo Route hasta crear endpoints con parámetros y devolver respuestas HTTP correctas usando ActionResult. Verás cómo evitar errores comunes, aprovechar Hot Reload y explorar endpoints con Endpoints Explorer, manteniendo un estilo REST claro y predecible.
¿Cómo configurar la ruta base en .NET?
Configurar la ruta base define cómo se accede a tu controller. Usar [Route("api/[controller]")] iguala el nombre de la ruta al nombre del controller, un patrón común para agrupar recursos de la API.
- Usa [ApiController] y ControllerBase para respuestas HTTP listas para usar.
- Prefija con api/ para separar endpoints de salud o documentación de la API pública.
- Valida con Hot Reload para aplicar cambios sin reiniciar.
- Si la URL no existe, el framework responde 404 Not Found acorde a REST.
Ejemplo base con lista precargada y GET general:
[ApiController] [Route("api/[controller]")] public class WeatherForecastController : ControllerBase { private static List<WeatherForecast> _items; public WeatherForecastController() { if (_items == null) { // Inicializa 5 elementos aleatorios como en la plantilla por defecto. _items = Enumerable.Range(1, 5) .Select(i => new WeatherForecast { /* ... */ }) .ToList(); } } [HttpGet] public IEnumerable<WeatherForecast> Get() => _items; }
¿Cómo crear endpoints con parámetros y rutas relativas o absolutas?
Definir la ruta de un endpoint con parámetro es directo. La clave está en si la ruta es relativa (se suma a la base) o absoluta (reemplaza la base).
- Relativa: sin slash inicial. Se concatena a la base del controller.
- Absoluta: con slash inicial. Ignora la ruta base y crea una nueva.
- El nombre del parámetro en la ruta debe coincidir con el del método.
Relativa (se combina con api/weatherforecast):
[HttpGet("{id}")] public ActionResult<WeatherForecast> GetById(int id) { // Validación se muestra abajo. return Ok(_items[id]); }
Absoluta (no usa la base del controller):
[HttpGet("/id")] // o [Route("/id")] public WeatherForecast GetByAbsolute(int id) => _items[id];
Apóyate en Endpoints Explorer para ver la lista de endpoints y generar un request de prueba rápidamente.
¿Cómo devolver códigos HTTP correctos con ActionResult?
Devolver el código correcto mejora la claridad del contrato REST. Un acceso fuera de rango produce una excepción y termina en 500 Internal Server Error si no lo controlas. En su lugar, valida y devuelve 400 Bad Request; en casos válidos, 200 OK.
- Usa ActionResult<T> para retornar tanto datos como estados HTTP.
- Métodos útiles: BadRequest() y Ok() ya disponibles por ControllerBase.
- Valida límites: el índice no debe ser negativo ni superar el tamaño de la lista.
Ejemplo con validación y respuestas adecuadas:
[HttpGet("{id}")] public ActionResult<WeatherForecast> GetById(int id) { if (id < 0 || id >= _items.Count) { return BadRequest(); // Request inválido: índice fuera de rango. } return Ok(_items[id]); // 200 OK con el elemento solicitado. }
Prácticas útiles para probar:
- Usa el archivo HTTP del proyecto para lanzar requests rápidos.
- Verifica cambios con Hot Reload antes de probar.
- Prueba también con Postman para ganar experiencia en ambas herramientas.
- Completa el CRUD: crea con POST, actualiza con PUT y elimina con DELETE.
¿Quieres que revisemos tu ruta actual o un caso particular de validación? Cuéntalo en los comentarios y te ayudo a pulirlo.