Différences entre REST et SOAP

Cet article décrit certains aspects des différences de base entre REST et SOAP.

Oups ... en fait, les comparer est un peu comme comparer des pommes à des oranges, car SOAP est un format de protocole basé sur XML, tandis que REST est une approche architecturale.



Vous apprendrez


  • Qu'est-ce que REST?
  • Qu'est-ce que SOAP?
  • Quelle est la différence entre REST et SOAP?

API REST


Voici le deuxième article d'une série d'articles sur l'API REST:

  • Introduction à l'API REST - Services Web RESTful
  • Différences entre REST et SOAP
  • Développement d'API REST - qu'est-ce que Contract First (contrat d'abord)?
  • Développement d'API REST - qu'est-ce que Code First (code first)?
  • API REST - Qu'est-ce que HATEOAS?
  • Recommandations de l'API REST - Exemples de conception de services Web dans Java et Spring

REPOS et SAVON


REST et SOAP ne sont pas vraiment comparables. REST est un style architectural. SOAP est un format de messagerie. Comparons les implémentations populaires des styles REST et SOAP.

  • Exemple d'implémentation RESTful : JSON sur HTTP
  • Exemple d'implémentation SOAP : XML au-dessus de SOAP sur HTTP

Au niveau supérieur, SOAP restreint la structure de vos messages, tandis que REST est une approche architecturale qui se concentre sur l'utilisation de HTTP comme protocole de transport.

  • La spécificité de SOAP est un format d'échange de données. Avec SOAP, c'est toujours SOAP-XML, qui est XML qui comprend:
    - Enveloppe (enveloppe) - l'élément racine qui définit le message et l'espace de noms utilisés dans le document,
    - En-tête (en-tête) - contient des attributs de message, par exemple: des informations de sécurité ou des informations de routage réseau,
    - Body (body) - contient un message échangé entre les applications,
    - Fault - un élément facultatif qui fournit des informations sur les erreurs survenues lors du traitement des messages. La demande et la réponse doivent être conformes à la structure SOAP.
  • La spécificité de REST est l'utilisation de HTTP comme protocole de transport. Cela implique la meilleure utilisation des fonctionnalités fournies par HTTP - méthodes de demande, en-têtes de demande, réponses, en-têtes de réponse, etc.

Format de messagerie


  • Dans SOAP, vous utilisez le format XML SOAP pour les demandes et les réponses.
  • Il n'y a pas un tel format fixe dans REST. Vous pouvez échanger des messages basés sur XML, JSON ou tout autre format pratique. JSON est le plus populaire parmi les formats utilisés.

Définitions des services


  • SOAP utilise WSDL (Web Services Description Language), un langage basé sur XML pour décrire et accéder aux services Web.
  • REST n'a pas de langage de définition de service standard. Bien que le WADL ait été l'une des premières normes proposées, il n'est pas très populaire. L'utilisation de Swagger ou de l'API ouverte est plus populaire.

Le transport


SOAP n'impose aucune restriction sur le type de protocole de transport. Vous pouvez utiliser le protocole Web HTTP ou MQ.

REST implique la meilleure utilisation du protocole de transport HTTP

Facilité de mise en œuvre


Les services Web RESTFful sont généralement beaucoup plus faciles à mettre en œuvre que les services Web SOAP.

  • REST utilise généralement JSON, qui est plus facile à analyser et à traiter. De plus, REST ne nécessite pas de définition de service pour fournir un service Web.
  • Cependant, dans le cas de SOAP, vous devez définir votre service à l'aide de WSDL, et il y a beaucoup de surcharge lors du traitement et de l'analyse des messages SOAP-XML.

Il existe également une vidéo d’auteur sur ce sujet.

Résumé


Dans cet article, nous avons examiné en détail les différences entre REST et SOAP.

Lecture complémentaire


5 cours pour apprendre les services Web RESTful avec Java et Spring en 2019

10 conseils de test d'API pour les débutants (SOAP et REST)

Source: https://habr.com/ru/post/fr483204/


All Articles