[ASP.NET WebAPI] Validaciones: Evitar errores duplicados

Si estas trabajando con WebAPI y usando DataAnnotations te habrás dado cuenta que cuando el modelo que recibes no es válido y lanzas un error al cliente salen mensajes de error duplicados:

image

Los mensajes de la key “car” no son de DataAnnotations, son de los formatters, que por defecto chequean los campos requeridos y si encuentran algún error durante la fase de formateo añaden el mensaje de error a la colección de errores del ModelState.

Para eliminar estos errores y dejar más limpias las respuestas de error de nuestra API, podemos implementar nuestro propio IRequiredMemberSelector y remplazar el de los formatters:

public class MyRequiredMemberSelector 

    : IRequiredMemberSelector {

 

    public bool IsRequiredMember(MemberInfo member) {

 

        return false;

    }

}

Ahora solo falta decirle a los formatters que usen nuestro IRequiredMemberSelector:

var config = GlobalConfiguration.Configuration;

 

foreach (var formatter in config.Formatters)

{

    formatter.RequiredMemberSelector = new MyRequiredMemberSelector();

}

Y el resultado:

image

Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *