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
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
A voir également:
- Question sur les web services
- Web office - Guide
- Adresse web - Guide
- Traduire une page web - Guide
- Création site web - Guide
- Utorrent web - Télécharger - Téléchargement & Transfert
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
10 janv. 2021 à 08:47
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.
"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.
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
13 janv. 2021 à 22:05
Merci pour ton aide.
Cela me semble beaucoup plus clair maintenant. :)
Je passe en résolu.
Cela me semble beaucoup plus clair maintenant. :)
Je passe en résolu.
10 janv. 2021 à 16:13
Peux tu m'indiquer ce qu'est le contrat ? Par quelle élément est il représenté dans mon projet ?
Modifié le 11 janv. 2021 à 08:14
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/