Je dois valider trois choses lorsqu'un consommateur de mon API essaie de faire une mise à jour sur un client.Validation de modèle dans l'API Web
Prévenir le client à être mis à jour si:
Le prénom ou le nom sont vides
Pour un pays, si la collecte intérieure du client de X est vide, jetez un exception. X est difficile à expliquer, alors supposons que c'est une collection. Pour tous les autres pays, X ne s'applique pas/sera toujours vide. Mais si c'est un certain pays, alors X est requis. C'est donc presque un attribut requis conditionnel. Un client appartient à un pays, il est donc déterminé à partir du JSON envoyé. Empêche le client d'être mis à jour si certaines conditions de la base de données sont vraies.
Donc, fondamentalement, je suis coincé avec le problème suivant, et je voulais quelques conseils sur la façon la plus appropriée pour le résoudre:
-je créer un filtre d'action pour faire la validation de l'entité client avant que l'économie ait lieu? Ou serait-il préférable de créer un attribut de validation personnalisé dérivé de ValidationAttribute et de surcharger la fonction membre IsValid.
Fondamentalement, une question de dire si (nom est vide, si x, si y, etc.) vs (! ModelState.IsValid)
Et puis en utilisant IsValid pour provoquer les attributs personnalisés au travail.
Il semble que les attributs de validation soient les meilleurs pour la validation "simple", c'est-à-dire le champ obligatoire. Mais une fois que vous commencez à entrer dans des choses comme "J'ai besoin de regarder ma base de données, ou d'analyser l'en-tête de requête http pour des valeurs personnalisées, et invalide = false", il semble presque faux de faire ce genre de choses si près de l'entité.
Pensées?
Merci!