La dernière fois que j’ai rencontré un service SOAP, c’était lors de mon stage dans une entreprise financière en 2013. C’est à ce moment-là que j’ai commencé ma carrière dans l’informatique. Je me souviens d'avoir eu du matériel d'étude sur SOAP dans l'un de mes cours d'ingénierie. En dehors de cela, je n'ai pas beaucoup utilisé SOAP au cours de ma carrière.
Je pose la question depuis que la question de "Différence entre SOAP et REST" a été abordée dans l’une de mes interviews récentes. D'après ce que je sais (et ce que j'ai trouvé sur Google), SOAP est un protocole avec un couplage étroit entre client et serveur pour l'échange d'informations étroitement lié à la logique métier. Tandis que REST est une architecture sans état plus flexible pour le transfert de données.
Quelqu'un peut-il me corriger si je me trompe à propos de cette différence entre SOAP et REST? En outre, quelle est la signification actuelle de SOAP? Est-ce que les gens développent encore de nouvelles API basées sur SOAP, ou s'agit-il principalement d'un héritage?
la source
Réponses:
REST est en effet un style architectural. SOAP est un protocole de données. La distinction est importante. vous ne pouvez pas les comparer directement.
L'objectif principal de REST est de représenter des ressources sur Internet et de fournir des mécanismes pour les découvrir. En revanche, SOAP est utilisé pour la communication de données structurées entre ordinateurs, et c'est tout ce qu'il fait.
Notez que vous n'avez pas réellement besoin de REST pour créer une relation client / serveur entre deux ordinateurs sur Internet. Tout ce dont vous avez besoin est un mécanisme qui transfère JSON ou XML, et vous n'en avez même pas besoin si vous êtes prêt à être incompatible avec les autres.
Néanmoins, SOAP n'est plus en faveur des nouvelles API destinées au public, bien qu'il soit encore couramment utilisé pour les applications B2B, car vous pouvez définir un "contrat de données" avec celle-ci. Les services Web JSON ont l'avantage d'être assez légers et flexibles, et comme Javascript reconnaît JSON de manière native, c'est un choix naturel pour les navigateurs.
Mais rien de tout cela n'a vraiment à voir avec REST.
Lectures supplémentaires
REST est-il meilleur que SOAP? (bon article, même s'il appelle incorrectement un protocole REST).
Le modèle de maturité de Richardson
la source
REST est beaucoup plus limité que SOAP, qui est sa force et la raison de sa popularité.
Dans SOAP, l'ensemble des opérations autorisées et l'ensemble des types de données autorisés sont essentiellement illimités. SOAP est un protocole de procédure à distance, que vous utilisez pour exposer les API locales sur le réseau sans perdre de fidélité. Cela a rendu SOAP populaire dans les environnements d'entreprise où des systèmes transactionnels complexes devaient interagir sur le réseau sans perdre de fidélité en cours de route. Cette richesse en capacités est également la perte de SOAP, car elle rend les API SOAP si difficiles à comprendre et à utiliser qu’elle nécessitait l’utilisation d’outils automatisés sous la forme de bibliothèques client WSDL et SOAP pour comprendre les choses. Plus précisément, exposer toute la richesse du système sous-jacent est peu attrayant dans les API destinées au public, où vous souhaitez fournir des abstractions qui vous permettent de faire évoluer le système sous-jacent sans avoir à casser ou à modifier votre API.
REST + JSON a gagné en popularité en raison de sa simplicité. Il définit un ensemble limité d'opérations avec un ensemble limité de types de données, ce qui oblige le concepteur d'API à concevoir avec soin des abstractions qui s'intègrent à l'intérieur de ce vocabulaire limité et à réfléchir au mappage du domaine métier aux ressources REST. Une API REST est facile à comprendre et à utiliser sans aucun outil spécial. Pour une API grand public où les utilisateurs de votre API peuvent avoir tous les niveaux de compétences et de connaissances, c'est exactement ce que vous voulez. C'est pourquoi toutes les API que vous voyez sur le Web sont en train de passer à REST. SOAP est relégué aux situations d'entreprise où il existe toujours une volonté et un besoin de partager des API complexes entre des systèmes. cependant,
Les utilisateurs ont essentiellement compris que l'ensemble des contraintes que vous devez appliquer à la conception de votre API pour rendre l'API assez simple et abstraite pour qu'il soit maintenable et facile à utiliser correspond exactement à l'ensemble de contraintes introduit par REST, qui neutralise efficacement les SOAP. avantages vous laissant avec seulement ses inconvénients. Vous pouvez créer une API simplifiée avec SOAP, mais elle ne sera jamais aussi facile à utiliser que REST. En pratique, tout le monde choisit donc REST.
la source
Vous ne pouvez pas comparer REST et SOAP. REST est un style architectural alors que SOAP est un protocole.
Malheureusement, REST est devenu un synonyme de service HTTP RESTful, ce qui signifie une réalisation de l'architecture de style REST avec HTTP comme protocole (d'application).
REST est basé sur les principes suivants (contraintes et éléments) (entre parenthèses la réalisation en HTTP RESTful) [1] .
De l'autre côté, beaucoup de gens entendent dire par SOAP qu'un service Web basé sur WSDL et SOAP faisant partie de l'architecture de service Web du W3C [2] .
SOAP est une norme du W3C utilisée comme format d'échange d'informations dans les services Web du W3C. Ces services Web étaient - en particulier lors du battage publicitaire des SOA (archtitectures orientées services) autour de 2008 (+ - 3 ans) - et (malheureusement) sont toujours principalement implémentés dans des applications d'entreprise.
Cela a plusieurs raisons. À l'époque, RESTful HTTP n'était pas bien connu et avait été mal compris. Malheureusement, il est encore incompris de regarder les autres réponses
En outre, SOAP (et WSDL) font partie de la pile de protocoles de service Web du W3C, qui fournit encore plus de normes pour la mise en œuvre d'un service Web.
Donc oui, il y a toujours et il y aura aussi à l'avenir des systèmes qui utilisent SOAP (du moins dans les systèmes d'entreprise, la plupart du temps derrière les portes). Mais la majorité essaie de faire une sorte de "REPOS" de nos jours.
Dire que REST est une architecture sans état plus flexible pour le transfert de données n'est pas une bonne explication. REST est un style d'architecture avec des contraintes et des éléments spécifiques. Considérant que SOAP est un protocole d’échange d’informations.
Comme je l'ai déjà écrit, vous ne pouvez pas les comparer. Mais vous pouvez comparer un service Web HTTP RESTful avec un service Web SOAP / WSDL.
la source