Différence entre REST et SOAP

introduction

Cet article décrit deux protocoles d'accès au service Web., SAVON («Simple Object Access Protocol») et DU REPOS ("Transfert d'État Représentatif").

Services Web

Les services Web sont définis pour extraire, lire ou transférer activement des données à partir d'une source définie afin de produire un résultat spécifié - un résultat.

L'exemple rudimentaire suivant illustre une utilisation de base des services Web avant de comprendre comment les données sont transférées vers et depuis le service Web, à l'aide de SOAP ou de REST..

Si un développeur écrit une application nécessitant le calcul de données à un endroit, il écrira la méthode de calcul dans le code, à cet endroit. Toutefois, si le calcul des données est nécessaire dans d'autres parties de l'application, il serait inefficace et peu pratique de le conserver si le développeur place la méthode de calcul dans chaque zone requise..

Devoir apporter un changement à cette méthode nécessiterait de trouver chaque instance à modifier (et de tester à nouveau). Ce scénario gagnerait à utiliser un service Web pour fonctionner de manière optimale et améliorer l'agilité de l'entreprise..

En créant un service Web avec des méthodes accessibles pour ajouter, soustraire, diviser et multiplier, l'application interagit 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 où le développeur peut gérer la méthode de calcul des données.

La manière dont les données sont traitées dans les services Web est déterminée par la mise en œuvre de SOAP ou de REST..

SOA et BPMN

Une application construite sur des processus exécutables est basée sur un Architecture orientée service ("SOA"). C'est une approche sur la façon d'utiliser 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 les délais de développement, ainsi que les performances et l'évolutivité des applications.

Notation de modélisation de processus métier («BPMN») est la modélisation d’un service ou d’un processus d’entreprise pouvant être réalisé par des personnes non techniques, c’est-à-dire l’analyste d’activité. 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 nécessiter ou non une interaction humaine..

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é l'ancien DCOM et CORBA technologies, et cela fait plus longtemps que REST.

SOAP est considéré comme plus lourd que REST, c.-à-d. Qu'il faut plus de bagages pour transférer des données, ce qui signifie qu'il faut plus de bande passante par demande de message et que la source de données et les cibles ont plus de travail à faire pour empaqueter et recevoir les données.

SOAP utilise seulement 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 SOAP est inflexible avec les erreurs..

Il est possible d'automatiser les demandes de messages SOAP à l'aide des langages .NET (à titre d'exemple), les développeurs n'ayant pas besoin de travailler avec le fichier XML car celui-ci est généré automatiquement en arrière-plan..

Si des problèmes surviennent avec la demande de message, des informations d'erreur détaillées sont renvoyées dans la réponse au message. 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 de la difficulté d'implémentation de SOAP..

L’un des bagages qui accompagne un message SOAP est le Langage de description des services Web («WSDL») pour expliquer 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 lié à l'utilisation HTTP (HyperText Transfer Protocol) exclusivement; il peut être utilisé via SMTP et d'autres protocoles de transport.

Comme SOAP a été normalisé, il est plus rigide que REST, bien que les deux dépendent de règles établies..

DU REPOS

REST est le cousin le plus récent et le plus élégant de SOAP. Il devient rapidement le choix idéal pour la plupart des applications Web et mobiles..

Plus de dix ans après son introduction, REST est un moyen plus simple, plus facile à gérer et évolutif d’interagir avec les services Web..

Contrairement à SOAP, REST n’utilise pas XML exclusivement; texte brut, CSV, et RSS peut être utilisé, 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 est considéré comme une courbe d’apprentissage plus petite que celle de SOAP. La plupart des langages de programmation modernes disposent de bibliothèques et de structures facilitant les services REST (RESTful), tels que C #, Python, Java et Perl..

REST est plus rapide en raison d'un traitement minimal et d'une efficacité accrue en utilisant différents formats de message.

Les deux présentent des avantages et des inconvénients. Par conséquent, lorsque vous déterminez le protocole d'accès à utiliser, prenez en compte les langages de programmation utilisés dans l'organisation, l'environnement d'application et les exigences de l'application..