Bonjour à tous
Je travaille sur un projet d'assez grosse envergure et je recherche la bonne pratique pour factoriser proprement un service. Je suis dans le cas de figure suivant :
J'ai un webservice qui me permet de créer des "commandes" (liste des articles, adresses, montant de la commande etc). Avant de sauvegarder la commande en base de donnée je dois effectuer une série de validation et également récupérer des données en base de donnée.
Par exemple, je dois vérifier que l'id d'article passé en paramètre correspond bien à un article existant et je dois récupérer l'objet "Article" pour pouvoir effectuer d'autres traitement plus tard dans le processus (décrémenter le stock, etc ...).
Mais question est donc : Quel serait le moyen le plus propre de factoriser ma méthode de récupération/validation de données ? Sachant que ma méthode mère à besoin d'avoir accès aux objets récupérés mais également à un "code erreur" pour pouvoir retourner le problème au client du Webservice.
J'ai pensé à plusieurs solutions mais aucune ne me parait idéale :
- Gérer toutes les erreurs avec des exceptions : J'ai peur que ça devienne un enfer de try-catch
- Retourner le code erreur en retour de fonction et l'objet via un paramètre d'entré de la fonction passé en référence : Bof ?
- Créer deux méthodes, une pour la récupération et une pour la validation : Une partie du code va être dupliquée. Je vais devoir refaire les requêtes en BDD et donc doubler la charge.
Voilà, aucune de ces solutions ne me semble idéale. Qu'en pensez vous ? Avez vous d'autres solutions à proposer ?





Répondre avec citation




Partager