How to disable object model validation .NET 7
After migration to .NET 7 my project's integration tests begin fail because of build-in model validation. The API Request class including not required properties such as string(?)
and List<T>
, were processed as mandatory and gave 400 error.
For years, I use my own validators for the requests model, its allows me more flexibility for response I return, http codes and etc.
More info for the topic can be found here
I didn't spend mush time on it but here are two solutions I found and tested:
- Create and register own dummy IObjectModelValidator
public class NullObjectModelValidator : IObjectModelValidator
{
public void Validate(ActionContext actionContext,
ValidationStateDictionary validationState, string prefix, object model)
{
}
}
and then add the following to Startup.cs
services.AddSingleton<IObjectModelValidator, NullObjectModelValidator>();
- Disable validation
services.AddControllers(o => o.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes = true )
I'm not a big fan of dummy object in production code, rather in tests, second option was chosen.
🚀 Turbocharge Your Infrastructure with Our Terraform Template Kits! 🚀
🌟 Slash deployment time and costs! Discover the ultimate solution for efficient, cost-effective cloud infrastructure. Perfect for DevOps enthusiasts looking for a reliable, scalable setup. Click here to revolutionize your workflow!
Learn More about Starter Terraform Kits for AKS,EKS and GKE
No comments are allowed for this post