258 votes

Principales différences entre les services web SOAP et RESTful en Java

Pour l'instant, j'ai une légère idée des différences entre SOAP et RESTful services.

Ma question est la suivante : quand dois-je utiliser SOAP et quand dois-je utiliser RESTful ? Lequel est le "meilleur" en termes de performances, de vitesse ou de traitement des demandes ?

Je suis en train de le mettre en œuvre pour la première fois dans RESTful (Java) et je veux en savoir plus à ce sujet ; j'ai déjà eu affaire à SOAP auparavant.

Il s'agit d'une question complémentaire à <a href="https://stackoverflow.com/questions/1950764/why-isnt-soap-based-web-service-restful">ce poste </a>.

12 votes

0 votes

249voto

dj_segfault Points 6407

REST sera presque toujours plus rapide. Le principal avantage de SOAP est qu'il fournit un mécanisme permettant aux services de se décrire aux clients et d'annoncer leur existence.

REST est beaucoup plus léger et peut être mis en œuvre à l'aide de presque tous les outils, ce qui permet de réduire la bande passante et la courbe d'apprentissage. Toutefois, les clients doivent savoir ce qu'ils doivent envoyer et ce qu'ils doivent attendre.

En général, lorsque vous publiez une API vers le monde extérieur qui est soit complexe, soit susceptible de changer, SOAP sera plus utile. En dehors de cela, REST est généralement la meilleure option.

5 votes

Du côté du consommateur de services web, quand faut-il utiliser REST et quand faut-il utiliser SOAP ? (en supposant que les deux options soient fournies). D'après ce que j'ai compris, REST doit être utilisé dans les cas où le consommateur veut accéder aux services web via un navigateur. En effet, les navigateurs peuvent comprendre à la fois XML et JSON. Si les services web doivent être consommés de manière programmatique, il ne semble pas y avoir d'avantage majeur. En fait, SOAP semble mieux convenir car il est plus organisé (WSDL). J'aimerais avoir votre avis sur la question.

2 votes

Andy, si l'API est simple et que les appels existants ne sont pas susceptibles de changer, REST fera l'affaire. L'avantage de SOAP, qui dispose de ce processus formel pour se décrire, est que si le service change, vous le saurez immédiatement et pourrez vous adapter plus facilement.

0 votes

Swagger peut se charger de la publication de l'API pour les services web reposants.

69voto

salman khalid Points 1217

Services Web REST et SOAP

Je constate qu'un grand nombre de nouveaux services Web sont mis en œuvre en utilisant une architecture de style REST plutôt qu'une architecture SOAP. Prenons un peu de recul et expliquons ce qu'est REST.

Qu'est-ce qu'un service web REST ?

L'acronyme REST signifie transfert d'états représentatifs et cela signifie essentiellement que chaque URL unique est une représentation d'un certain objet. Vous pouvez obtenir le contenu de cet objet en utilisant un GET HTTP. le supprimer, vous pouvez alors utiliser un POST, PUT, ou DELETE pour modifier l'objet objet (en pratique, la plupart des services utilisent un POST pour cela).

Qui utilise REST ?

Tous les services web de Yahoo utilisent REST, notamment Flickr y Délicieux .

Les API l'utilisent, pubsub, bloglines, Technorati et eBay et Amazon proposent des services web à la fois pour REST et SOAP.

Qui utilise SOAP ?

Google semble être cohérent dans la mise en œuvre de ses services web pour SOAP, à l'exception de Blogger, qui utilise le protocole SOAP. XML-RPC . Vous trouverez Vous trouverez également des services web SOAP dans de nombreux logiciels d'entreprise.

REST vs. SOAP

Comme vous l'avez peut-être remarqué, les entreprises que j'ai mentionnées et qui utilisent des API REST n'existent pas depuis très longtemps, et leurs API sont apparues cette année cette année. REST est donc définitivement le moyen le plus tendance de créer un service web. service web, si tant est que la création de services web puisse être à la mode. on utilise du savon pour se laver, et on se repose quand on est fatigué). Les principaux avantages des services web REST sont les suivants

  • Léger - pas beaucoup de balisage XML supplémentaire Résultats lisibles par l'homme

  • Facile à construire - aucune boîte à outils n'est nécessaire. SOAP présente également certains avantages :

Facile à consommer - parfois Rigide - vérification des types, adhère à un contrat. contrat Outils de développement Pour la consommation de services Web, il faut parfois choisir entre entre ce qui est le plus facile et ce qui ne l'est pas. Par exemple, l'outil de Google AdWords web est vraiment difficile à consommer (en ColdFusion de toute façon), il utilise des en-têtes SOAP et un certain nombre d'autres choses qui rendent les choses assez difficiles. A l'inverse, le service web REST d'Amazon peut parfois être difficile à analyser. difficile à analyser parce qu'il peut être très imbriqué et que le schéma de résultat peut varier en fonction de ce que vous recherchez.

Quelle que soit l'architecture choisie, assurez-vous qu'elle soit facile d'accès pour les développeurs et bien documentée. d'y accéder, et qu'elle est bien documentée.

Freitag, P. (2005). "Services Web REST vs SOAP". Récupéré sur http://www.petefreitag.com/item/431.cfm le 13 juin 2010.

54 votes

Veuillez arrêter de poster cet article ou les liens vers celui-ci. Il date de 2005, donc pas vraiment pertinent. De plus, vous n'êtes pas l'auteur, n'est-ce pas ?

3 votes

Si REST est censé être apatride, alors comment Yahoo etc. l'utilise pour des sites web qui nécessitent une connexion ? N'est-ce pas une violation de la deuxième loi de REST (apatride) ?

4 votes

Cet article vieux de 10 ans a-t-il encore un sens aujourd'hui ?

43voto

kapil das Points 470

SOAP

Le protocole SOAP (Simple Object Access Protocol) est une norme, un langage XML, qui définit une architecture et des formats de messages. Il est utilisé par les services Web. Il contient une description des opérations.

WSDL est un langage basé sur XML pour décrire les services Web et la manière d'y accéder. Il fonctionne sur SMTP, HTTP, FTP, etc. Il nécessite un support middleware et un mécanisme bien défini pour définir les services comme WSDL+XSD et WS-Policy. SOAP renvoie des données basées sur XML

REST

Les services web RESTful (Representational State Transfer). Il s'agit de services Web de deuxième génération.

Les services web RESTful communiquent par HTTP plutôt que par SOAP et ne nécessitent pas de messages XML ou de définitions WSDL de l'interface utilisateur du service. Pour REST, aucun intergiciel n'est requis, seul le support HTTP est nécessaire. Il s'agit d'une norme WADL, REST peut renvoyer du XML, du texte brut, du JSON, du HTML, etc.

42voto

Kalidoss.M Points 234

REST est une architecture.
REST donnera des résultats lisibles par l'homme.
REST est sans état.
Les services REST peuvent facilement être mis en cache.

SOAP est un protocole. Il peut fonctionner au-dessus de JMS , FTP et HTTP.

2 votes

Bien que REST soit très bien réalisé avec HTTP, comme SOAP, il n'est pas limité à HTTP.

32voto

CharithJ Points 15364
  1. REST n'a pas de WSDL (Web Description Language) de définition d'interface.

  2. REST passe par HTTP, mais SOAP peut passer par n'importe quel protocole de transport tel que HTTP, FTP, SMTP, JMS etc.

14 votes

Rest a WADL comme SOAP a WSDL

6 votes

REST ne se limite pas à XML, il peut s'agir de n'importe quoi (texte brut, JSON, HTML, etc.) que vous pouvez transférer via HTTP.

0 votes

Je pense que SOAP WSDL est aussi écrit en XML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X