Il est probable que ces informations doivent être commentées dans plusieurs des messages précédents, mais je n'ai pas encore la réputation de le faire.
Je pense qu'il est intéressant de constater qu'un grand nombre des avantages et des inconvénients souvent cités pour SOAP et REST ont (IMO) très peu à voir avec les valeurs ou les limites réelles des deux technologies. L'avantage le plus souvent cité pour REST est probablement qu'il est "léger" ou qu'il tend à être plus "lisible par l'homme". A un certain niveau, c'est certainement vrai, REST a une barrière à l'entrée plus basse - il y a moins de structure requise que SOAP (bien que je sois d'accord avec ceux qui ont dit qu'un bon outillage est en grande partie la réponse ici - dommage qu'une grande partie de l'outillage SOAP soit assez épouvantable).
Cependant, au-delà de ce coût d'entrée initial, je pense que l'impression REST provient d'une combinaison de la forme des URL de requête et de la complexité des données échangées par la plupart des services REST. REST tend à encourager des URL de requête plus simples et plus lisibles par l'homme et les données tendent également à être plus digestes. Cependant, dans quelle mesure ces caractéristiques sont-elles inhérentes à REST et dans quelle mesure sont-elles simplement accidentelles ? La structure URL plus simple est un résultat direct de l'architecture, mais elle pourrait tout aussi bien être appliquée aux services basés sur SOAP. Les données plus digestes sont plus probablement le résultat de l'absence de toute structure définie. Cela signifie que vous avez intérêt à garder vos formats de données simples, sinon vous allez avoir beaucoup de travail. Ainsi, la structure supplémentaire de SOAP, qui devrait être un avantage, permet en fait une conception négligée et cette conception négligée est ensuite utilisée comme une attaque contre la technologie.
Ainsi, pour l'échange de données structurées entre systèmes informatiques, je ne suis pas sûr que REST soit intrinsèquement meilleur que SOAP (ou vice-versa), ils sont simplement différents. Je pense que la comparaison ci-dessus entre REST et SOAP et le typage dynamique et statique est bonne. Là où les langages dynamiques ont tendance à avoir des problèmes, c'est dans la maintenance à long terme et l'entretien d'un système (et par long terme, je ne parle pas d'un an ou deux, mais de 5 ou 10 ans). Il sera intéressant de voir si REST rencontre les mêmes difficultés avec le temps. J'ai tendance à penser que ce sera le cas, donc si je construisais un système de traitement de l'information distribué, j'opterais pour SOAP comme mécanisme de communication (également en raison de la transmission et de la stratification des protocoles d'application et de la flexibilité qu'il offre, comme cela a été mentionné ci-dessus).
À d'autres endroits, cependant, REST semble plus approprié. AJAX entre le client et son serveur (indépendamment de la charge utile) en est un exemple majeur. Je ne me soucie pas beaucoup de la longévité de ce type de connexion et la facilité d'utilisation et la flexibilité sont un minimum. De même, si j'avais besoin d'un accès rapide à un service externe et que je ne pensais pas que j'allais me soucier de la maintenabilité de l'interaction dans le temps (encore une fois, je suppose que c'est là que REST va finir par me coûter plus cher, d'une manière ou d'une autre), alors je pourrais choisir REST juste pour pouvoir entrer et sortir rapidement.
Quoi qu'il en soit, ces deux technologies sont viables et, en fonction des compromis que vous souhaitez faire pour une application donnée, elles peuvent vous être utiles (ou non).
0 votes
Cette question peut également trouver des réponses utiles : stackoverflow.com/questions/90451/
2 votes
Cela dépend du contexte, SOAP et REST ont tous deux leur place. On ne voit généralement pas Hi-SOAP et lo-SOAP comme on entend parler de REST. La raison en est qu'il existe une spécification, et que soit vous la suivez, soit vous ne la suivez pas. SOAP trouve son utilité dans les centres de données où vous avez besoin d'interopérabilité entre différents serveurs qui ne peuvent pas communiquer directement et où les performances sont un facteur important. Dans ces cas, il est agréable de faire SOAP sur TCP. SOAP a été conçu comme un transport indépendant, donc essentiellement vous devriez être en mesure de l'utiliser sur TCP, MSMQ, etc, REST ne concerne que HTTP.
0 votes
CodeToGlory a raison. En fait, le WCF de Microsoft a été conçu spécifiquement pour rendre SOAP sur n'importe quel support de transport aussi facile qu'une valeur dans un fichier de configuration.
0 votes
Duplicata possible de SOAP vs REST (différences)