Manejo de Status Code en C#
Los códigos de estado HTTP (Status Code) indican el resultado de una solicitud web. En aplicaciones ASP.NET y ASP.NET Core, puedes controlar el código de respuesta para informar al cliente de forma clara y estándar sobre el resultado de una operación. Usar correctamente los códigos de estado mejora la interoperabilidad y la experiencia del usuario.
Enviar Status Codes personalizados
En ASP.NET Core puedes devolver códigos específicos usando los helpers de controlador.
return StatusCode(404, "Recurso no encontrado.");
También puedes usar métodos específicos como:
return NotFound("No existe el recurso solicitado."); return BadRequest("Datos inválidos."); return Ok(objeto);
Estas respuestas indican al cliente el resultado de forma clara y con el código HTTP adecuado.
Controlar StatusCode en Middleware
En middleware puedes modificar la respuesta directamente:
app.Use(async (context, next) => { await next(); if (context.Response.StatusCode == 404) { await context.Response.WriteAsync("Página personalizada para 404."); } });
Esto permite personalizar mensajes o páginas de error globalmente.
Buenas Prácticas
Usa códigos HTTP estándar y semánticos para comunicar claramente el estado de la operación. Devuelve 200 (OK) solo en casos exitosos. Usa 400 (Bad Request) para errores del cliente y 500 (Internal Server Error) para fallos inesperados. Personaliza las páginas de error para una mejor experiencia de usuario. Loguea errores de servidor para análisis y monitoreo.