.Net 10 Web API performance metrics and features
- sunayansarkar2018
- Apr 25
- 2 min read



.NET 10 Minimal API Validation
Automatic validation in .NET 10 minimal APIs can enhance the robustness of your application by ensuring that incoming requests meet specified criteria before processing. This can be achieved through model validation and middleware. Below are some key points to consider:
1. Model Validation
Using data annotations, you can define validation rules directly in your model classes. For example:
public class User
{
[Required]
[StringLength(100)]
public string Name { get; set; }
[EmailAddress]
public string Email { get; set; }
}
2. Setting Up Minimal API
To set up a minimal API with validation, you can define your endpoints as follows:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapPost("/users", (User user) =>
{
// Your logic here
}).Validate(); // Automatically validates the User model
app.Run();
3. Automatic Validation Middleware
To implement automatic validation, you can create a middleware to handle validation errors:
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == StatusCodes.Status400BadRequest)
{
// Handle validation errors
var errors = context.Items["ValidationErrors"];
await context.Response.WriteAsJsonAsync(errors);
}
});
4. Custom Validation Attributes
You can also create custom validation attributes for more complex validation scenarios:
public class CustomValidationAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// Custom validation logic
return ValidationResult.Success;
}
}
5. Testing Validation
Ensure to test your validation logic by sending requests with both valid and invalid data to verify that your API behaves as expected.
Conclusion
Implementing automatic validation in .NET 10 minimal APIs improves data integrity and user experience by providing immediate feedback on input errors. By leveraging model validation, middleware, and custom attributes, you can create a robust API that efficiently handles validation.


Comments