Question

Mon intuition est que les services Web basés sur des documents sont préférés dans la pratique - est-ce l'expérience des autres ?Sont-ils plus faciles à soutenir ?(J'ai noté que SharePoint utilise Any pour le "type de document" dans son interface WSDL, je suppose que cela le rend basé sur un document).

De plus, les gens proposent-ils désormais des services de type WSDL et Rest pour la même fonctionnalité ?WSDL est populaire pour la génération de code, mais pour les frontaux comme PHP et Rails, ils semblent préférer le repos.

Était-ce utile?

La solution

Document versus RPC n'est une question que si vous utilisez des services Web SOAP qui nécessitent une description de service (WSDL).Les services Web RESTful n'utilisent pas WSDL car le service ne peut pas être décrit par celui-ci, et le sentiment est que REST est plus simple et plus facile à comprendre.Certaines personnes ont proposé WADL comme moyen de décrire les services REST.

Des langages comme Python, Ruby et PHP facilitent le travail avec REST.le WSDL est utilisé pour générer du code C# (un proxy de service Web) qui peut être facilement appelé depuis un langage statique.Cela se produit lorsque vous ajoutez un Référence des services ou Référence Web dans Visual Studio.

Que vous fournissiez des services SOAP ou REST dépend de votre population d'utilisateurs.Que les services soient utilisés sur Internet ou simplement au sein de votre organisation affecte votre choix.SOAP peut avoir certaines fonctionnalités (normes WS-*) qui fonctionnent bien pour un usage B2B ou interne, mais qui sont nulles pour un service Internet.

Les documents/littéraux par rapport aux RPC pour les services SOAP sont décrits ici. Article IBM DevelopWorks.Le document/littéral est généralement considéré comme le meilleur à utiliser en termes d'interopérabilité (Java vers .NET, etc.).Quant à savoir si c’est plus facile à soutenir, cela dépend de votre situation.Mon point de vue personnel est que les gens ont tendance à rendre ces choses plus compliquées qu'elles ne devraient l'être, et l'approche plus simple de REST est supérieure.

Autres conseils

Comme mentionné, il est préférable de choisir le document littéral plutôt que le RPC encodé autant que possible.Il est vrai que les anciennes bibliothèques Java (Axis1, Glue et autres éléments préhistoriques) ne prennent en charge que le codage RPC, mais dans les bibliothèques SOAP Java les plus modernes d'aujourd'hui, elles ne le prennent tout simplement pas en charge (par ex.AXIS2, XFire, CXF).Essayez donc d'exposer le service codé RPC uniquement si vous savez que vous devez traiter avec un consommateur qui ne peut pas faire mieux.Mais là encore, peut-être que XML RPC pourrait aider pour ces implémentations héritées.

La réponse de BiranLy est excellente.Je voudrais simplement ajouter que la comparaison entre document et RPC peut également se résumer à des problèmes de mise en œuvre.Nous avons constaté que Microsoft préférait les documents, tandis que nos bibliothèques basées sur Java étaient basées sur RPC.Quel que soit votre choix, assurez-vous de savoir ce que les autres clients potentiels supposeront également.

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