Question sur les web services

Résolu/Fermé
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024 - 10 janv. 2021 à 02:12
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024 - 13 janv. 2021 à 22:05
Bonjour,

j'essaye de comprendre la différence entre les web service SOAP et REST et je pense avoir compris est que la principal différence est que pour les SOAP: si on fait une modification du côté du client ou du serveur, il faudra effectuer des modifications et mettre à jour de l’autre côté.
Et que SOAP est un protocole et REST un style d'architecture.
Cela est il bien la principal différence entre ces 2 type de web service?
Et quel est la différence entre un protocole et un style d'architecture?
A voir également:

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
10 janv. 2021 à 08:47
Bonjour,

"pour les SOAP: si on fait une modification du côté du client ou du serveur, il faudra effectuer des modifications et mettre à jour de l’autre côté"
Non, c'est faux. Il faut distinguer le contrat du web service (ses méthodes, paramètres et résultats) de son implémentation.
Que ce soit en SOAP ou en REST tant que le contrat n'est pas modifié tu peux modifier l'implémentation autant que tu veux, le client arrivera à t'appeler et comprendre la réponse.
En revanche si tu supprimes ou modifies une méthode, que tu ajoutes des paramètres obligatoires, etc. le client devra se mettre à jour car il ne pourra pas communiquer avec le serveur en utilisant l'ancienne version du contrat.

"SOAP est un protocole et REST un style d'architecture"
Je ne trouve pas cette affirmation pertinente, puisque les deux se basent généralement sur le protocole HTTP (d'ailleurs on pourrait très bien "s'amuser" à décrire un contrat SOAP avec un serveur REST)

La différence entre les deux, c'est dans la manière d'utiliser le protocole HTTP.
Avec SOAP on fera toujours un POST vers la même URL (celle du contrat), le choix de la méthode utilisée et de ses paramètres est alors décrit dans le corps du message (en XML) et la réponse sera toujours en XML, y compris pour les messages d'erreur.
Avec REST on est beaucoup plus souple, on peut faire des POST comme SOAP, mais aussi n'importe quel autre verbe HTTP (notamment GET), le choix de la méthode - et éventuellement certains paramètres- se fait dans l'URL appelée (qui n'est donc plus obligatoirement unique), le corps du message et de la réponse peuvent être dans n'importe quel format, c'est souvent du JSON, mais rien n'empêche de faire du XML comme SOAP.
1
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024
10 janv. 2021 à 16:13
Merci de m'avoir répondu
Peux tu m'indiquer ce qu'est le contrat ? Par quelle élément est il représenté dans mon projet ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024
Modifié le 11 janv. 2021 à 08:14
Le contrat d'un web service c'est la description des méthodes et des types d'objets qu'elle manipule, tant en paramètres qu'en résultat.

C'est quelque chose qui peut se générer automatiquement. Il y a différents formats mais les plus courants (a minima dans le monde Java) sont WSDL pour le SOAP et Swagger pour le REST.
En partageant le contrat auprès des clients du web service cela leur permettra de générer le code correspondant selon leur technologie.

https://www.w3schools.com/xml/xml_wsdl.asp
https://petstore.swagger.io/
0
Rune188 Messages postés 67 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 29 janvier 2024
13 janv. 2021 à 22:05
Merci pour ton aide.
Cela me semble beaucoup plus clair maintenant. :)
Je passe en résolu.
0