Différence entre REST et SOAP Différence entre
Introduction
Cet article décrit deux protocoles d'accès au service Web, SOAP ("Simple Object Access Protocol") et REST ("Transfert d'état représentationnel").
Services Web
Les services Web sont définis pour extraire, lire ou transférer activement des données d'une source définie afin de produire un résultat spécifique - un résultat.
L'exemple rudimentaire suivant montre une utilisation basique des services Web avant de comprendre comment les données sont transférées vers et depuis le service Web, en utilisant SOAP ou REST.
Si un développeur écrit une application qui nécessite un calcul de données à un endroit, il écrira la méthode de calcul dans le code, à cet endroit. Cependant, si le calcul des données est nécessaire dans d'autres parties de l'application, il serait inefficace et peu pratique de le maintenir si le développeur a placé la méthode de calcul dans toutes les zones où il est nécessaire.
Avoir à apporter une modification à cette méthode nécessiterait de trouver toutes les occurrences à éditer (et retester). Ce scénario bénéficierait de l'utilisation d'un service Web pour fonctionner de manière optimale et améliorer l'agilité métier.
En créant un service Web avec des méthodes accessibles pour ajouter, soustraire, diviser et multiplier, l'application interagira avec ce service Web chaque fois que le calcul des données est requis; il appelle le service Web pour effectuer le calcul et produire le résultat. Il n'y a donc qu'un seul endroit pour que le développeur puisse maintenir la méthode de calcul des données.
La façon dont les données sont traitées dans les services Web est déterminée par l'implémentation de SOAP ou REST.
SOA et BPMN
Une application basée sur des processus exécutables est basée sur une architecture Service Oriented Architecture ("SOA"). C'est une approche sur l'utilisation des services qui transfère, produit, valide ou calcule des données.
SOA devient de plus en plus favorable pour améliorer la qualité et le temps de développement, et améliorer les performances et l'évolutivité des applications.
La notation de modélisation de processus métier ("BPMN") est la modélisation d'un service ou d'un processus métier, qui peut être effectué par des personnes non techniques i. e. l'analyste d'affaires. En utilisant BPMN , les modèles commerciaux (pour les services) sont facilement interprétés par les développeurs qui implémentent le modèle en tant que processus exécutable, et ces processus peuvent ou non nécessiter une interaction humaine.
Protocole SOAP (Simple Object Access Protocol)
SOAP est une méthode de transfert de données sur Internet.
Développé à l'origine par Microsoft en raison de l'avènement d'Internet, SOAP a remplacé les anciennes technologies DCOM et CORBA , et il existe depuis bien plus longtemps que REST.
SOAP est considéré comme plus lourd que REST i.e. il y a plus de bagages nécessaires pour transférer les données, ce qui signifie que plus de bande passante est nécessaire par demande de message et que la source de données et les cibles ont plus de travail à faire lors du conditionnement et de la réception des données.
SOAP n'utilise que XML pour les services de messagerie sur Internet, et les demandes de messages XML peuvent être très complexes et si elles sont développées manuellement, une attention particulière est requise car le SOAP est inflexible.
Il est possible d'automatiser les requêtes de message SOAP en utilisant. Langages NET (à titre d'exemple), où les développeurs n'ont pas besoin de travailler avec le XML car il est généré automatiquement en arrière-plan.
En cas de problème avec la demande de message, des informations d'erreur détaillées sont renvoyées dans la réponse du message, et ce processus peut également être automatisé en référençant les codes d'erreur standard fournis dans la réponse au message.
Par conséquent, le langage de programmation utilisé est un facteur déterminant dans la difficulté de mettre en œuvre SOAP.
Le langage de description des services Web («WSDL») est l'un des éléments qui accompagnent un message SOAP. Il explique le fonctionnement du service Web. Lorsqu'une application fait référence au service Web, elle lit et comprend ce qu'il faut faire avec le service Web.
SOAP n'est pas obligé d'utiliser HTTP (HyperText Transfer Protocol) exclusivement; il peut être utilisé via SMTP et d'autres protocoles de transport.
Comme le SOAP a été standardisé, il est plus rigide que REST, bien que tous deux dépendent de règles établies.
REST
REST est le cousin plus récent et plus élégant de SOAP, et devient rapidement le choix pour la plupart des applications web et mobiles.
Plus d'une décennie après son introduction, REST constitue une façon plus légère, plus facile à gérer et plus évolutive d'interagir avec les services Web.
Contrairement à SOAP, REST n'utilise pas exclusivement XML ; texte en clair , CSV , et RSS peuvent être utilisés, ainsi que JSON pour les appels AJAX; tant que la source et les cibles peuvent comprendre les formats utilisés.
REST est moins complexe et considéré comme une courbe d'apprentissage plus petite que par rapport à SOAP. La plupart des langages de programmation modernes ont des bibliothèques et des frameworks pour faciliter les services REST (RESTful), tels que C #, Python, Java et Perl.
REST est plus rapide grâce à un traitement minimal et à l'utilisation plus efficace de différents formats de message.
L'un et l'autre présentent des avantages et des inconvénients. Par conséquent, lorsque vous envisagez le protocole d'accès à utiliser, tenez compte des langages de programmation utilisés dans l'organisation, de l'environnement d'application et des exigences de l'application.