Skip to content

Validación y errores

Una API profesional valida entradas y devuelve errores consistentes.

Data annotations

csharp
public record CreateProductRequest(
    [Required, StringLength(120)] string Name,
    [Range(0, double.MaxValue)] decimal Price
);

Con [ApiController], ASP.NET Core devuelve 400 Bad Request automáticamente si el modelo no es válido.

FluentValidation

csharp
public class CreateProductValidator : AbstractValidator<CreateProductRequest>
{
    public CreateProductValidator()
    {
        RuleFor(x => x.Name).NotEmpty().MaximumLength(120);
        RuleFor(x => x.Price).GreaterThanOrEqualTo(0);
    }
}

ProblemDetails

ASP.NET Core puede devolver errores con formato estándar.

csharp
return Problem(
    title: "Product not found",
    statusCode: StatusCodes.Status404NotFound);

Exception handler

Centraliza errores con middleware o filtros.

Buenas practicas

  • Valida DTOs de entrada.
  • Usa códigos de error estables.
  • No expongas stack traces.
  • Registra errores con contexto.
  • Cubre errores en tests.