Qu'est-ce qu'un bon modèle de conception pour les valeurs de retour des méthodes Web ?

StackOverflow https://stackoverflow.com/questions/39585

  •  09-06-2019
  •  | 
  •  

Question

Lors du codage de services Web, comment structurez-vous vos valeurs de retour ?Comment gérez-vous les conditions d’erreur (attendues et inattendues) ?Si vous renvoyez quelque chose de simple comme un int, le renvoyez-vous simplement ou l'intégrez-vous dans un objet plus complexe ?Toutes les méthodes Web d'un même service renvoient-elles une instance d'une classe unique ou créez-vous une classe de valeur de retour personnalisée pour chaque méthode ?

Était-ce utile?

La solution

J'aime le modèle d'objet Request/Response, dans lequel vous encapsulez vos arguments dans une seule classe [Operation]Request, qui possède des propriétés publiques simples.

Quelque chose comme AddCustomerRequest, qui renverrait AddCustomerResponse.

La réponse peut inclure des informations sur le succès/l'échec de l'opération, tous les messages susceptibles d'être utilisés par l'interface utilisateur, éventuellement l'ID du client ajouté, par exemple.

Un autre bon modèle consiste à faire en sorte que tous ces éléments dérivent d'une simple interface IMessage, où votre point final général est quelque chose comme Process(params IMessage[] messages)...de cette façon, vous pouvez effectuer plusieurs opérations dans la même requête Web.

Autres conseils

+1 pour la réponse de Ben.

De plus, je suggère de considérer que la réponse générique autorise plusieurs éléments d'erreur/avertissement, afin de permettre à la réponse d'être aussi complète et exploitable que possible.(Voudriez-vous utiliser un compilateur qui s'est arrêté après le premier message d'erreur, ou un qui vous en dit le plus possible ?)

Si vous utilisez les services Web SOAP, alors Défauts SOAP sont le moyen standard de renvoyer les détails de l'erreur, où les messages d'erreur peuvent renvoyer tous les détails supplémentaires que vous souhaitez.

Les erreurs Soap sont une pratique standard lorsque l’application appelante est un client Soap.Il existe des cas, tels qu'un client COM utilisant XMLHTTP, où le Soap est analysé comme XML et les erreurs Soap ne peuvent pas être facilement gérées.Je ne peux pas encore voter mais un autre +1 pour @Ben Scheirman.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top