SOAP ( Protocole d'accès simple aux objets ) et REST ( Transfert d'état de représentation ) les deux sont magnifiques à leur manière. Je ne les compare donc pas. Au lieu de cela, j'essaie de dépeindre l'image, quand je préfère utiliser REST et quand SOAP.
Qu'est-ce que la charge utile ?
Lorsque des données sont envoyées sur Internet, chaque unité transmise comprend à la fois des informations d'en-tête et les données réelles envoyées. L'en-tête identifie la source et la destination du paquet, tandis que les données réelles sont appelées "données utiles". . En général, la charge utile est constituée des données transportées au nom d'une application et des données reçues par le système de destination.
Maintenant, par exemple, je dois envoyer un Télégramme et nous savons tous que le coût du télégramme dépendra de certains mots.
Alors dites-moi, parmi les deux messages mentionnés ci-dessous, lequel est le moins cher à envoyer ?
<name>Arin</name>
o
"name": "Arin"
Je sais que votre réponse sera la seconde, bien que les deux représentent le même message, la seconde est moins chère en termes de coût.
C'est ce que j'essaie de dire, l'envoi de données sur le réseau au format JSON est moins coûteux que l'envoi au format XML en ce qui concerne la charge utile .
Voici le premier avantage ou les premiers avantages de REST par rapport à SOAP . SOAP ne prend en charge que le XML, mais REST prend en charge différents formats comme le texte, JSON, XML, etc. Et nous savons déjà que si nous utilisons Json, nous serons certainement dans une meilleure position en ce qui concerne la charge utile.
Aujourd'hui, SOAP ne supporte que le XML, mais elle a aussi ses avantages.
Vraiment ! Comment ?
SOAP s'appuie sur XML de trois manières Enveloppe - qui définit le contenu du message et la manière de le traiter.
Un ensemble de règles d'encodage pour les types de données, et enfin la disposition des appels de procédure et des réponses rassemblées.
Cette enveloppe est envoyée via un transport (HTTP/HTTPS), et un RPC (Remote Procedure Call) est exécuté, et l'enveloppe est renvoyée avec des informations dans un document au format XML.
Le point important est que l'un des avantages de SOAP est l'utilisation de la "transport "générique mais REST utilise HTTP/HTTPS . SOAP peut utiliser presque n'importe quel transport pour envoyer la demande, mais REST ne le peut pas. Nous avons donc ici un avantage à utiliser SOAP.
Comme je l'ai déjà mentionné dans le paragraphe précédent "REST utilise HTTP/HTTPS" alors approfondissez un peu plus ces mots.
Lorsque nous parlons de REST sur HTTP, toutes les mesures de sécurité appliquées à HTTP sont héritées, ce qui est connu sous le nom de la sécurité au niveau du transport et il ne sécurise les messages que pendant il est à l'intérieur du fil mais une fois que vous l'avez livré de l'autre côté, vous ne savez pas combien d'étapes il devra franchir avant d'atteindre le point réel où les données seront traitées. Et bien sûr, toutes ces étapes pourraient utiliser autre chose que HTTP. Donc le repos n'est pas complètement sûr, n'est-ce pas ?
Mais SOAP supporte SSL tout comme REST en plus il supporte également WS-Security qui ajoute des fonctions de sécurité d'entreprise. WS-Security offre une protection contre les de la création du message à sa consommation . Ainsi, pour la sécurité au niveau du transport, toute faille que nous avons trouvée peut être évitée en utilisant WS-Security.
En dehors de cela, comme REST est limité par son protocole HTTP. La prise en charge des transactions n'est donc pas conforme à la norme ACID et ne permet pas d'effectuer un commit en deux phases sur des ressources distribuées transnationales.
Mais SOAP a un support complet pour les deux Gestion des transactions basée sur ACID pour les transactions à court terme et la gestion des transactions basée sur la rémunération pour les transactions à long terme. Il prend également en charge engagement en deux phases sur des ressources distribuées .
Je ne tire aucune conclusion, mais je préférerai un service web basé sur SOAP si la sécurité, les transactions, etc. sont les principales préoccupations.
Voici le "The Java EE 6 Tutorial" où ils ont dit Une conception RESTful peut être appropriée lorsque les conditions suivantes sont réunies . Jetez un coup d'œil.
J'espère que vous avez apprécié ma réponse.
219 votes
Il y a une analogie avec une lettre que j'ai beaucoup aimée à propos de SOAP et REST, avec SOAP, vous utilisez une enveloppe, avec REST, c'est une carte postale Il est donc évident que le protocole SOAP entraîne des frais supplémentaires : plus de bande passante (plus de papier), travail supplémentaire pour les deux parties (enveloppement et désencapsulation). Mais cela ne signifie pas que REST n'est pas aussi sûr que SOAP puisque vous pouvez utiliser HTTPS (pensez-y comme si vous remplaciez le facteur par quelqu'un qui ne parle que des langues étrangères).
3 votes
spf13.com/post/soap-vs-rest
0 votes
nishantshukla001webservices.blogspot.in/2015/09/
11 votes
"À bien des égards, le World Wide Web lui-même, basé sur HTTP, peut être considéré comme une architecture basée sur REST."
4 votes
Conformément à Modèle de maturité de Richardson qui décompose les principaux éléments d'une approche REST en trois étapes, SOAP est le niveau 0 de REST.
0 votes
Différence entre SOAP et REST dans le cadre d'une application de commerce mobile (informations détaillées) blog.contus.com/rest-api-vs-soap-api-for-mobile-ecommerce-app
0 votes
Cela pourrait être utile community.jivesoftware.com/community/developer/plugins/blog/