SOAP ( Simple Object Access Protocol ) et REST ( Representation State Transfer ) sont tous deux beaux à leur manière. Je ne les compare donc pas. Au lieu de cela, j'essaie de représenter l'image, quand j'ai préféré 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 la charge utile . En général, la charge utile est les données qui sont transportées pour le compte d'une application et les 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 quelques mots.
Alors dites-moi parmi les deux messages mentionnés ci-dessous, lequel est le moins cher à envoyer?
<name>Arin</name>
ou
"name": "Arin"
Je sais que votre réponse sera la deuxième, bien que les deux représentant le même message soient moins chers en termes de coût.
J'essaie donc de dire que l' envoi de données sur le réseau au format JSON est moins cher que l'envoi au format XML concernant la charge utile .
Voici le premier ou les premiers avantages de REST par rapport à SOAP . SOAP ne prend en charge que 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 mieux placés en ce qui concerne la charge utile.
Maintenant, SOAP prend en charge le seul XML, mais il a aussi ses avantages.
Vraiment! Comment?
SOAP s'appuie sur XML de trois manières Enveloppe - qui définit ce qui est dans le message et comment le traiter.
Un ensemble de règles de codage pour les types de données, et enfin la disposition des appels de procédure et des réponses recueillies.
Cette enveloppe est envoyée via un transport (HTTP / HTTPS), et un RPC (Remote Procedure Call) est exécuté, et l'enveloppe est retournée avec des informations dans un document au format XML.
Le point important est que l' un des avantages de SOAP est l'utilisation du transport «générique» mais REST utilise HTTP / HTTPS . SOAP peut utiliser presque n'importe quel moyen de transport pour envoyer la demande, mais REST ne le peut pas. Nous avons donc ici l'avantage d'utiliser SOAP.
Comme je l'ai déjà mentionné dans le paragraphe ci-dessus "REST utilise HTTP / HTTPS" , alors approfondissez un peu 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 sécurité au niveau du transport et il sécurise les messages uniquement lorsqu'il est à l'intérieur du câble, mais une fois que vous l'avez remis 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 quelque chose de différent de HTTP. Le repos n'est donc pas complètement plus sûr, non?
Mais SOAP prend en charge SSL tout comme REST et prend également en charge WS-Security, qui ajoute des fonctionnalités de sécurité d'entreprise. WS-Security offre une protection de la création du message à sa consommation . Donc, pour la sécurité au niveau du transport, quelle que soit la faille que nous ayons trouvée, elle peut être évitée à l'aide de WS-Security.
En dehors de cela, comme REST est limité par son protocole HTTP, sa prise en charge des transactions n'est donc pas conforme à ACID et ne peut pas fournir de validation en deux phases sur les ressources transnationales distribuées.
Mais SOAP prend en charge à la fois la gestion des transactions basée sur ACID pour les transactions de courte durée et la gestion des transactions basée sur la compensation pour les transactions de longue durée. Il prend également en charge la validation en deux phases sur les ressources distribuées .
Je ne tire aucune conclusion, mais je préférerai un service Web basé sur SOAP alors que la sécurité, la transaction, etc. sont les principales préoccupations.
Voici le "Tutoriel Java EE 6" où ils ont dit qu'une conception RESTful peut être appropriée lorsque les conditions suivantes sont remplies . Regarde.
J'espère que vous avez apprécié la lecture de ma réponse.