Je configure un projet web api pour utiliser FluentValidation en utilisant le webapi integration package pour FluentValidation. Ensuite, j'ai créé un validateur qui utilise CustomAsync(...)
pour exécuter des requêtes sur la base de données.Comment effectuer une validation asynchrone ModelState avec FluentValidation dans l'API Web?
Le problème est que la validation semble être bloquée lors de l'attente de la tâche de base de données. J'ai fait une enquête, il semble que l'API MVC ModelState est synchrone, et il appelle une méthode synchrone Validate(...)
qui appelle FluentValidation à appeler task.Result
, provoquant l'interblocage.
Est-il correct de supposer que les appels asynchrones ne fonctionneront pas bien avec la validation intégrée de webapi?
Et si c'est le cas, quelle est l'alternative? WebApi ActionFilters semble prendre en charge le traitement asynchrone. Ai-je besoin de créer mon propre filtre pour gérer la validation manuellement ou y a-t-il déjà quelque chose à faire que je ne vois pas?