2011-01-09 7 views
2

Supposons que la couche de gestion est consommée par le Web et qu'une partie des fonctionnalités de la couche de gestion est également accessible au public en tant que services Web REST. Souhaitez-vous effectuer la validation des entrées pour la logique métier au niveau de la couche de présentation (service Web Web ou REST) ​​ou dans la couche de gestion et capturer les erreurs de validation (lancées par la couche de gestion) au niveau de la couche de présentation?où effectuer la validation des entrées

(Plus précisément cadre de ressort est utilisé)

Répondre

3

En cas de doute, il est généralement préférable de mettre la logique métier (logique de validation d'entrée inclus) dans la couche d'affaires parce que

  • Vous pouvez avoir affaire à plusieurs supports de présentation (par exemple, l'interface graphique Web et API)
  • Vous ne voulez pas répéter le code et gérer deux instances de cette logique

Goo d Les frameworks vous permettront de définir une telle logique dans un lieu commun et de prendre en charge les problèmes de capture anticipés (par exemple, dans la couche de présentation), qui est généralement plus intuitive (échouer rapidement) et plus évolutive. Toutefois, si votre ou vos framework (s) ne supportent pas cette fonctionnalité, vous devez préférer la cohérence et la maintenabilité et mettre la logique dans la couche de gestion.

+0

Merci d'avoir signalé ces Kelly. Je suis d'accord sur ceux-ci mais le problème est, je pense, je peux juste rejeter les entrées invalides (jeter une erreur de validation etc) à la couche de gestion, mais au niveau de la présentation je peut avoir besoin d'erreurs de validation plus fines. .). Pour ce faire, je dois mettre toute la validation dans le grain le plus fin possible à la couche de gestion, puis se comporter en conséquence dans la couche de présentation, n'est-ce pas? Je pense au printemps et je ne suis pas sûr d'avoir trouvé une solution claire. Je suis nouveau au printemps, donc je peux manquer un point. Toute clarification est la bienvenue. – mete

1

Je recommande d'implémenter la validation dans toutes les couches. Je fais l'interface utilisateur afin que l'expérience utilisateur soit élevée, avec une rétroaction immédiate. Mais je ne fais jamais confiance aux données fournies par l'interface utilisateur (pensez à un utilisateur qui désactive JS). Maintenant, le niveau de détail de votre validation côté serveur dépend de vous. Mais vous voulez éviter que votre utilisateur souffre d'un aller-retour complet sur le serveur si vous le pouvez.

+0

+1 "ne faites jamais confiance aux données fournies par l'interface utilisateur". –

1

Les violations de règles métier doivent toujours se produire dans la couche de gestion. Que vous autorisiez une vérification proactive ou non, c'est une décision de conception, tout comme si vous voulez vérifier avec empressement le client pour éviter les allers-retours.

Questions connexes