Transfert d'état de représentation (REST) et protocole D'accès aux objets simples (SOAP))

quelqu'un peut-il expliquer ce qu'est REST et ce qu'est SOAP en anglais? Et comment fonctionnent les services Web?

705
demandé sur Community 2008-10-16 23:24:14

14 réponses

explication Simple sur le savon et le repos

SOAP - "Simple Object Access Protocol"

SOAP est une méthode de transfert de messages, ou de petites quantités d'information, sur Internet. Les messages SOAP sont formatés en XML et sont généralement envoyés en utilisant HTTP (hypertext transfer protocol).


Rest - transfert D'état de représentation

reste est un moyen simple d'envoyer et de recevoir des données entre le client et le serveur et il n'a pas beaucoup de normes définies. Vous pouvez envoyer et recevoir des données en JSON, XML ou même en texte simple. C'est la lumière pondérée par rapport à SAVON.


enter image description here

1572
répondu Nakkeeran 2013-05-24 23:31:39

ces deux méthodes sont utilisées par beaucoup de grands joueurs. C'est une question de préférence. Je préfère le repos parce que c'est plus simple à utiliser et à comprendre.

Simple Object Access Protocol (SOAP):

  • SOAP construit un protocole XML sur HTTP ou parfois TCP/IP.
  • SOAP décrit les fonctions, et les types de données.
  • SOAP est un successeur de XML-RPC et est très similaire, mais décrit une façon standard de communiquer.
  • plusieurs langages de programmation ont un support natif pour SOAP, vous lui donnez généralement une URL de service web et vous pouvez appeler ses fonctions de service web sans avoir besoin de code spécifique.
  • les données binaires qui sont envoyées doivent d'abord être encodées dans un format tel que base64 encoded.
  • dispose de plusieurs protocoles et technologies relatifs à l'informatique: WSDL, XSDs, SOAP, WS-Addressing

transfert D'État représentatif (reste):

  • le reste ne doit pas nécessairement être sur HTTP mais la plupart de mes points ci-dessous auront un biais HTTP.
  • reste est très léger, il dit Attendez une minute, nous n'avons pas besoin de toute cette complexité que le savon a créé.
  • utilise généralement des méthodes HTTP normales au lieu d'un grand format XML décrivant tout. Par exemple, pour obtenir une ressource que vous utilisez HTTP GET, pour mettre une ressource sur le serveur vous utilisez HTTP PUT. Pour supprimer une ressource sur le serveur, vous utilisez HTTP DELETE.
  • REST est très simple en ce qu'il utilise les méthodes HTTP GET, POST et PUT pour mettre à jour les ressources sur le serveur.
  • REST est généralement mieux utilisé avec Resource Oriented Architecture (ROA). Dans ce mode de pensée, tout est une ressource, et vous exploitent ces ressources.
  • As tant que votre langage de programmation a une bibliothèque HTTP, et la plupart le font, vous pouvez consommer un protocole HTTP REST très facilement.
  • des données binaires ou des ressources binaires peuvent simplement être livrés sur leur demande.

Il y a les débats sans fin sur le REPOS vs SAVON sur google .

Mon préféré est celui-ci . Mise à jour du 27 novembre 2013: le site de Paul Prescod semble avoir été déconnecté et cet article n'est plus disponible, mais des copies peuvent être trouvées sur la Wayback Machine ou en PDF à CiteSeerX .

315
répondu Brian R. Bondy 2018-09-16 08:44:53

reste

je comprends que l'idée principale du repos est extrêmement simple. Nous utilisons des navigateurs web depuis des années et nous avons vu à quel point les sites Web sont faciles, flexibles, performants, etc. Les sites HTML utilisent les hyperliens et les formulaires comme principal moyen d'interaction avec les utilisateurs. Leur but principal est de nous permettre, clients, de ne connaître que les liens que nous pouvons utiliser dans l'état actuel . Et le reste dit simplement " pourquoi ne pas utiliser les mêmes principes pour conduire l'ordinateur plutôt que des clients humains à travers notre application?"Combinez cela avec la puissance de L'infrastructure WWW et vous obtiendrez un outil de tueur pour la construction de grandes applications distribuées.

une autre explication possible est pour les gens mathématiquement pensant. Chaque application est essentiellement une machine d'état avec des actions de logique d'affaires étant des transitions d'état. L'idée de REST est de cartographier chaque transition sur une demande à une ressource et de fournir aux clients des liens représentant les transitions disponibles dans l'état actuel. Il modélise ainsi la machine d'état par des représentations et des liens. C'est pour ça que ça s'appelle un transfert D'État représentatif.

il est assez surprenant que toutes les réponses semblent se concentrer soit sur le format des messages, soit sur L'utilisation des verbes HTTP. En fait, le format de message n'a pas d'importance du tout, REST peut utiliser n'importe lequel à condition que le développeur de service le documente. Les verbes HTTP ne font qu'un service CRUD, mais pas encore reposant. Ce qui transforme réellement un service en un service de repos sont des hyperliens (alias hypermedia contrôles) intégrés dans les réponses du serveur avec des données, et leur montant doit être suffisant pour tout client de choisir l'action suivante à partir de ces liens.

malheureusement, il est assez difficile de trouver des informations correctes sur le repos sur le Web, à l'exception de la de la thèse de Roy Fielding . (Il est celui qui a dérivé le repos). Je recommande le livre "REST in Practice" comme il donne un tutoriel détaillé étape par étape sur la façon d'évoluer du savon au repos.

savon

C'est l'une des formes possibles du style d'architecture RPC (remote procedure call). Essentiellement, c'est juste une technologie qui permet aux clients d'appeler des méthodes de serveur via les limites de service (réseau, processus, etc.) comme s'ils appelaient des méthodes locales. Bien sûr, il diffère en fait d'appeler des méthodes locales dans vitesse, fiabilité, etc., mais l'idée est aussi simple que cela.

comparé

les détails comme les protocoles de transport, les formats de message, xsd, wsdl, etc. ne vous souciez pas en comparant n'importe quelle forme de RPC au repos. La principale différence est qu'un service RPC réinvente le vélo en concevant son propre protocole d'application dans L'API RPC avec la sémantique que lui seul connaît. Par conséquent, tous les clients doivent comprendre ce protocole avant l'utilisation du service, et aucune infrastructure générique comme les caches ne peut être construit en raison de la sémantique propriétaire de toutes les requêtes. En outre, les API RPC ne suggèrent pas quelles actions sont autorisées dans l'état actuel, cela doit être dérivé de la documentation supplémentaire. Se REPOSER sur l'autre main implique l'utilisation d'interfaces uniformes pour permettre aux différents clients d'avoir une certaine compréhension de l'API sémantique, et hypermédia contrôles (liens) pour mettre en surbrillance les options disponibles dans chaque état. Ainsi, il permet la mise en cache réponses aux services d'échelle et en rendant l'utilisation correcte de L'API facilement détectable sans documentation supplémentaire.

D'une certaine façon, SOAP (comme toute autre CPR) est une tentative de percer un tunnel à travers une limite de service en traitant les supports de connexion comme une boîte noire capable de transmettre des messages seulement. Le repos est une décision de reconnaître que le Web est un énorme système d'information distribué, d'accepter le monde tel qu'il est et d'apprendre à le maîtriser au lieu de le combattre.

SOAP semble être idéal pour les API réseau internes, lorsque vous contrôlez à la fois le serveur et les clients, et alors que les interactions ne sont pas trop complexes. C'est plus naturel pour les développeurs à l'utiliser. Cependant, pour une API publique qui est utilisé par de nombreuses parties indépendantes, est complexe et grande, le repos devrait mieux s'adapter. Mais cette dernière comparaison est très floue.

mise à Jour

mon expérience a montré de façon inattendue développement du repos pour être plus difficile que le SAVON. Au moins pour .NET. Tandis qu'il y a de grands cadres comme ASP.NET API Web, il n'y a aucun outil qui générerait automatiquement un proxy côté client. Rien de tel que "Ajouter une référence de Service Web" ou "ajouter une référence de Service WCF". On doit écrire toutes les questions de serialization et de service code à la main. Et mec, ça fait beaucoup de code boilerplate. Je pense que REST development a besoin de quelque chose de similaire à WSDL et tooling implémentation pour chaque plate-forme de développement. En fait, il semble qu'il y pour être un bon terrain: WADL ou WSDL 2.0 , mais aucune des normes ne semble être bien soutenue.

Mise À Jour (Janvier 2016)

S'avère qu'il y a maintenant un large variété d'outils pour la définition de L'API REST. Ma préférence personnelle est actuellement RAML .

Comment les Services Web de travail

Eh bien, c'est une question trop large, parce qu'elle dépend de l'architecture et de la technologie utilisées dans le service Web spécifique. Mais en général, un service web est simplement une application sur le Web qui peut accepter les demandes des clients et retourner les réponses. Il est exposé au Web, donc il est un web service, et il est généralement disponible 24/7, c'est pourquoi il est un service . Bien sûr, il résout certains problèmes (sinon pourquoi quelqu'un utiliserait-il un service web) pour ses clients.

243
répondu Pavel Gatilov 2017-05-23 12:10:30

C'est l'explication la plus simple que vous trouverez jamais.

cet article présente le récit d'un mari à sa femme, où le mari explique à sa femme à propos du repos, en termes purement profanes. Devez lire!

comment-je-a expliqué le-reste-de-ma-femme (lien original)

comment-je-a expliqué le-reste-de-ma-femme (2013-07-19 lien de travail)

38
répondu Vinay Wadhwa 2013-07-19 14:34:31

SOAP - Simple Object Access Protocol is a protocol !

RESTE - REpresentational State Transfer est un l'architecture de style !

SOAP est un protocole XML utilisé pour transférer des messages, généralement par HTTP

REST et SOAP sont sans doute Non s'excluent mutuellement. Une architecture RESTful pourrait utiliser HTTP ou SOAP ou un autre protocole de communication. REST est optimisé pour le web et donc HTTP est un choix parfait. HTTP est aussi le seulement protocole discuté dans L'article de Roy Fielding.

bien que le repos et le savon soient clairement très différents, la question met en lumière le fait que REST et HTTP sont souvent utilisés en tandem. Cela est principalement dû à la simplicité de HTTP et sa correspondance très naturelle avec les principes Reposful.

principes de repos fondamentaux

Communication Client-Serveur

les architectures Client-Serveur ont une séparation très nette des préoccupations. Toutes les applications construites dans le style RESTful doivent également être client-serveur dans princple.

apatrides

chaque requête de chaque client au serveur exige que son état soit pleinement représenté. Le serveur doit être capable de comprendre complètement la requête client sans utiliser le contexte du serveur ou l'état de session du serveur. Il s'ensuit que tout état doit être maintenu sur le client. Nous discuterons plus en détail de la représentation des apatrides plus tard.

Cachable

Les contraintes de Cache

peuvent être utilisées, ce qui permet de marquer les données de réponse comme étant "cachable" ou "non-cachable". Toute donnée identifiée comme pouvant être mise en cache peut être réutilisée en tant que réponse à la même demande ultérieure.

Interface Uniforme

tous les composants doivent interagir au moyen d'une seule interface uniforme. Comme toutes les interactions entre les composants se font via cette interface, l'interaction avec différents services est très simple. Le l'interface est la même! Cela signifie également que les changements de mise en œuvre peuvent être faits isolément. De tels changements, n'affecteront pas l'interaction fondamentale des composants parce que l'interface uniforme est toujours inchangée. Un désavantage est que vous êtes coincé avec l'interface. Si une optimisation peut être fournie à un service spécifique en changeant l'interface, vous n'avez pas de chance car le repos l'interdit. Du côté positif, cependant, le repos est optimisé pour le web, d'où la popularité incroyable du repos sur HTTP!

les concepts ci-dessus représentent les caractéristiques définissant REST et distinguent L'architecture REST d'autres architectures comme les services web. Il est utile de noter qu'un service REST est un service web, mais qu'un service web n'est pas nécessairement un service REST.

Voir ce blog post sur RESTE principes de Design pour plus de détails sur RESTE et est indiquée ci-dessus balle.

37
répondu cmd 2015-05-05 16:59:04

j'aime la réponse de Brian R. Bondy. Je voulais juste ajouter que Wikipedia fournit une description claire de repos . L'article le distingue du savon.

RESTE est un échange d'informations d'état, fait aussi simplement que possible.

SOAP est un protocole de message qui utilise XML.

L'une des principales raisons pour lesquelles beaucoup de gens sont passés du savon au repos est que les normes WS-* (appelé WS splat) associé à des services web SOAP basés sont extrêmement compliqués. Voir wikipedia pour une liste des spécifications. Chacune de ces spécifications est très compliqué.

EDIT: pour une raison quelconque, les liens ne s'affichent pas correctement. REST = http://en.wikipedia.org/wiki/REST

WS - * = http://en.wikipedia.org/wiki/WS - *

12
répondu David G 2009-08-04 14:25:02

SOAP webservices et REST webservices peuvent utiliser le protocole HTTP et d'autres protocoles (pour ne mentionner que SOAP peut être le protocole sous-jacent de REST). Je ne parlerai que du SOAP et du REST liés au protocole HTTP, parce que c'est l'usage le plus fréquent d'entre eux.

SAVON de marseille

SOAP ("simple" object access protocol) est un protocole (et un W3C standard ). Il définit la façon dont créer, envoyer et traiter des messages SOAP.

  • les messages SOAP sont des documents XML avec une structure spécifique: ils contiennent une enveloppe qui contient l'en-tête et la section de corps. Le corps contient les données que nous voulons envoyer dans un format XML. Il y a deux styles d'encodage , mais nous choisissons habituellement littéral , ce qui signifie que notre application ou son pilote SOAP fait le XML la sérialisation et unserialization des données.

  • les messages SOAP voyagent comme des messages HTTP avec SOAP+XML MIME subtype. Ces messages HTTP peuvent être multipartis, donc nous pouvons éventuellement attacher des fichiers aux messages SOAP.

  • évidemment, nous utilisons une architecture client-serveur, de sorte que les clients SOAP envoient des requêtes aux webserices SOAP et les services renvoient des réponses aux clients. La plupart des webservices utilisez un fichier WSDL pour décrire le service. Le fichier WSDL contient le schéma XML (ci-après XSD) des données que nous voulons envoyer et la reliure WSDL qui définit comment le service web est lié au protocole HTTP. Il y a deux styles de reliure : RPC et document. Par la liaison de style RPC, le corps SOAP contient la représentation d'un appel d'opération avec les paramètres (requêtes HTTP) ou les valeurs de retour (réponse HTTP). Les paramètres et valeurs de retour sont validés contre le XSD. Par la liaison de style de document le corps SOAP contient un document XML qui est validé par rapport à XSD. Je pense que le style de reliure de documents est mieux adapté aux systèmes basés sur des événements, mais je n'ai jamais utilisé ce style de reliure. Le style de reliure RPC est plus répandu, de sorte que la plupart des gens utilisent SOAP à des fins XML/RPC par des applications distribuées. Les services web se trouvent généralement en demandant à un serveur UDDI . Les serveurs UDDI sont des registres qui stockent l'emplacement des webservices.

SOAP RPC

donc le - à mon avis-le plus répandu SOAP webservice utilise le style de liaison RPC et le style d'encodage littéral et il a les propriétés suivantes:

  • Il fait correspondre des adresses Url pour les opérations.
  • il envoie des messages avec SOAP+XML MIME subtype.
  • il peut avoir un stockage de session côté serveur, il n'y a pas de contraintes à ce sujet.
  • les pilotes clients SOAP utilisent le fichier WSDL du service pour convertir les opérations RPC en méthodes. L'application côté client communique avec le service Web SOAP en appelant ces méthodes. Ainsi, la plupart des clients SOAP cassent par des changements d'interface (noms de méthodes et/ou changements de paramètres qui en résultent).
  • il est possible d'écrire des clients SOAP qui ne casseront pas par des changements d'interface en utilisant RDF et trouver des opérations par sémantique, mais semantic webservice sont très rares et ils n'ont pas nécessairement un client non cassant (je suppose).

reste

REST (representational state transfer) est un style d'architecture qui est décrit dans la dissertation de Roy Fielding. Cela ne concerne pas les protocoles comme le fait SOAP. Il commence par un style d'architecture nul n'ayant pas de contraintes et définit les contraintes de le reste de l'architecture un par un. Les gens utilisent le terme RESTful pour les services web qui remplissent toutes les contraintes de repos, mais selon Roy Fielding, il n'y a pas de choses comme niveaux de repos . Lorsqu'un service web ne répond pas à toutes les contraintes de repos, ce n'est pas un service Web de repos.

RESTE les contraintes

  • architecture Client - serveur - je pense que cette partie est tout le monde connaît. Les clients REST communiquent avec les autres webservices, les webservices maintiennent les données communes - état des ressources ci - après-et les servent aux clients.
  • État: "L'état" transfert d'une partie de l'abréviation: REPOS. Les clients maintiennent l'état client (session/application), de sorte que les services ne doivent pas avoir de stockage de session. Les clients transfèrent la partie pertinente de l'état client par chaque demande aux services qui répondent avec la partie pertinente de la ressource de l'état (maintenu par eux). Si les demandes n'ont pas de contexte, ils contiennent toujours les informations nécessaires pour les traiter. Par exemple, par HTTP basic auth, le nom d'utilisateur et le mot de passe sont stockés par le client, et ils sont envoyés avec chaque requête, de sorte que l'authentification se produit par chaque requête. Ceci est très différent des applications web régulières où l'authentification ne se fait que par login. Nous pouvons utiliser n'importe quel mécanisme de stockage de données côté client comme dans la mémoire (javascript), cookies, stockage local, et ainsi de suite... pour maintenir certaines parties de l'état client si nous voulons. La raison de l'apatridie contrainte, que le serveur échelles de bien - même en charge très élevée (millions d'utilisateurs) - quand il n'a pas à maintenir la session de chaque client.
  • Cache-la réponse doit contenir des informations à son sujet qui peuvent être mises en cache par le client ou non. Cela améliore encore l'évolutivité.
  • interface uniforme

    • Identification des ressources - le RESTE des ressources est le même que RDF des ressources. Selon Fielding si vous pouvez le nom de quelque chose, alors il peut être une ressource, par exemple: "les temps" peut être une ressource, ou "votre téléphone mobile" peut être une ressource, ou "web spécifique document" peut être une ressource. Pour identifier une ressource, vous pouvez utiliser les identificateurs de ressource: URLs et URNs (par exemple numéro ISBN par Livres ). Un identifiant unique ne doit appartenir qu'à une ressource spécifique, mais une même ressource peut avoir de nombreux identificateurs, que nous exploitons fréquemment par exemple par pagination avec des URLs comme https://example.com/api/v1/users?offset=50&count=25 . Les URLs ont quelques spécifications , par exemple les URLs avec les mêmes chemins mais des requêtes différentes ne sont pas identiques, ou la partie de chemin doit contenir les données hiérarhiques de l'URL et la partie de requête doit contenir les données non hiérarchiques. Ce sont les bases de comment créer des URLs par REST. Btw. la structure D'URL n'a d'importance que pour les développeurs de services, un vrai client REST ne s'en préoccupe pas. Une autre question fréquemment posée est la versioning de L'API, qui est une question facile, parce que selon Fielding la seule chose constante par ressource est la sémantique. Si la sémantique change, alors vous pouvez ajouter un nouveau numéro de version. Vous pouvez utiliser le classique 3 Numéro versioning et ajouter seulement le numéro principal aux URLs ( https://example.com/api/v1/ ). Par modifications compatibles en amont rien ne se passe, par des modifications non compatibles en amont vous aurez une sémantique non compatible en amont avec une nouvelle racine API https://example.com/api/v2/ . Ainsi les anciens clients ne se casseront pas, parce qu'ils peuvent utiliser le https://example.com/api/v1/ avec la vieille sémantique.
    • Manipulation de ressources par des représentations - Vous pouvez manipuler les données relatives aux ressources (état des ressources) en envoyant la représentation prévue des ressources - avec la méthode HTTP et la Identificateur de Ressource - vers le service REST. Par exemple, si vous voulez renommer un utilisateur après le mariage, vous pouvez envoyer une demande PATCH https://example.com/api/v1/users/1 {name: "Mrs Smith"} où le {name: "Mrs Smith"} est une représentation JSON de l'état de ressource prévu, en d'autres termes: le nouveau nom. Cela se produit vica-versa, le service envoie des représentations de ressources aux clients afin de changer leurs états. Par exemple, si nous voulons lire le nouveau nom, nous pouvons envoyer une demande de recherche GET https://example.com/api/v1/users/1?fields="name" , qui aboutit à un 200 ok, {name: "Mrs Smith"} réponse. Ainsi, nous pouvons utiliser cette représentation pour changer l'état du client, par exemple, nous pouvons afficher un " Bienvenue à notre page Mme Smith!" message. Une ressource peut avoir plusieurs représentations selon l'Identificateur de ressource (URL) ou l'en-tête accept que nous avons envoyé avec la requête. Par exemple, nous pouvons envoyer une image de Mme Smith (probablement pas nue) si image/jpeg est demandé.
    • Auto-descriptif des messages: les Messages doivent contenir des informations sur la façon de les traiter. Par exemple, la méthode URI et HTTP, l'en-tête content-type, les en-têtes cache, RDF qui décrit la signification des données, etc... Il est important d'utiliser des méthodes standard. Il est important de connaître la spécification des méthodes HTTP. Par exemple, GET signifie récupérer des informations identifiées par L'URL de la requête, DELETE signifie demander au serveur de supprimer la ressource identifiée par L'URL donnée, et ainsi de suite... Les codes de statut HTTP ont une spécification comme eh bien, par exemple 200 signifie succès, 201 signifie qu'une nouvelle ressource a été créée, 404 signifie que la ressource demandée n'a pas été trouvée sur le serveur, etc... L'utilisation des normes existantes est un élément important de REST.
    • Hypermedia comme moteur de l'état d'application (HATEOAS hereafter) - Hypermedia est un type de média qui peut contenir des hyperliens. Par le web nous suivons des liens-décrits par un format hypermédia (habituellement HTML) - pour atteindre un but, au lieu de dactylographier l'Url dans la barre d'adresse. Le reste suit le même concept, les représentations envoyées par le service peuvent contenir des hyperliens. Nous utilisons ces hyperliens pour envoyer des demandes au service. Avec la réponse nous obtenons des données (et probablement plus de liens) que nous pouvons utiliser pour construire le nouvel état client, et ainsi de suite... C'est pourquoi hypermedia est le moteur de l'état d'application (État client). Vous vous demandez probablement comment les clients reconnaissent et suivent les hyperliens? Par humains, il est assez simple, nous lisons le titre de le lien, peut-être remplir les champs d'entrée, et après cela juste un clic. Par machines nous devons ajouter sémantique aux liens avec RDF (par JSON-LD avec Hydra ) ou avec des solutions spécifiques hypermédia (par exemple IANA link relations et type MIME spécifique vendeur par HAL+JSON ). Il y a beaucoup de lisible par machine XML et " JSON hypermédia formats , juste une courte liste d'entre eux:

      parfois, il est difficile de choisir...

  • système stratifié - nous pouvons utiliser plusieurs couches entre les clients et les services. Aucun d'eux ne devrait connaître toutes ces couches supplémentaires, juste la couche juste à côté. Ces couches peuvent améliorer l'évolutivité en appliquant des caches et un équilibrage de charge ou elles peuvent renforcer les politiques de sécurité.
  • Code sur demande - nous pouvons renvoyer le code qui étend la fonctionnalité du client, par exemple le code javascript à un navigateur. C'est la seule contrainte optionnelle de repos.

RESTE webservice - RPC SOAP webservice différences

donc un REST webservice est très différent d'un SOAP webservice (avec liaison RPC style et littérale style d'encodage)

  • il définit une interface uniforme (au lieu d'un protocole).
  • Il cartes Url de ressources (et pas des opérations).
  • il envoie des messages avec n'importe quel type MIME (au lieu de simplement SOAP+XML).
  • il a une communication apatride, et donc il ne peut pas avoir un stockage de session côté serveur. (SOAP n'a aucune contrainte à ce sujet)
  • il sert hypermédia et les clients utilisent des liens contenus par cette hypermédia pour demander le service. (SOAP RPC utilise des opérations de reliure décrites dans le fichier WSDL)
  • il ne casse pas par des changements D'URL seulement par des changements sémantiques. (Les clients RPC SOAP sans utiliser la sémantique RDF cassent par les changements de fichier WSDL.)
  • il balance mieux qu'un service Web de savon en raison de son comportement apatride.

et ainsi de suite...

UN SOAP RPC webservice ne pas répondre à tous le RESTE les contraintes:

  • architecture client-serveur - toujours
  • apatride - possible
  • cache - possible
  • interface uniforme-jamais
  • système stratifié - jamais
  • code de de la demande (en option) - possible
7
répondu inf3rno 2014-09-07 12:01:46

je commencerai par la deuxième question: Qu'est-ce qu'un service Web? , pour des raisons évidentes.

les services web sont essentiellement des morceaux de logique (que vous pouvez vaguement appeler méthode) qui exposent certaines fonctionnalités ou données. Le client implémentant (techniquement parlant, consommant est le mot) a juste besoin de savoir quel(s) paramètre (s) la méthode va accepter et le type de les données qu'il va revenir(si c'est le cas).

Le suivant Lien dit-il RESTE & SAVON de marseille extrêmement lucide.

repos vs savon

si vous voulez aussi savoir quand choisir quoi (repos ou savon), raison de plus pour passer à travers elle!

6
répondu Sayan 2013-12-18 05:27:46

SOAP et REST les deux se réfèrent à la manière dont les différents systèmes de parler les uns aux autres.

reste fait cela en utilisant des techniques qui ressemblent à la communication que votre navigateur A avec les serveurs web: en utilisant GET pour demander une page web, L'affichage dans les champs de formulaire, etc.

SOAP fournit quelque chose de similaire mais fait tout par l'envoi de blocs de XML d'avant en arrière. Un autre élément clé de SOAP est WSDL qui est un document XML qui décrit ce que les fonctions et les éléments de données sont pris en charge. WSDLs peut être utilisé pour "découvrir" programmatiquement quelles fonctions sont supportées ainsi que pour générer des talons de code de programmation.

4
répondu pbreitenbach 2009-07-04 06:09:09

je pense que c'est aussi facile que je peux l'expliquer. S'il vous plaît, n'importe qui est le bienvenu pour me corriger ou ajouter à cela.

SOAP est un format de message utilisé par les systèmes déconnectés (comme Internet) pour échanger des informations / données. C'est le cas des messages XML qui vont et viennent.

Web services, de transmettre ou de recevoir des messages SOAP. Ils fonctionnent différemment selon la langue qu'ils sont rédigés.

2
répondu StingyJack 2008-10-16 19:37:03

le problème avec SOAP est qu'il est en conflit avec les idéaux derrière la pile HTTP. Tout middleware devrait pouvoir fonctionner avec des requêtes HTTP sans comprendre le contenu de la requête ou de la réponse, mais par exemple un serveur de mise en cache HTTP régulier ne fonctionnera pas avec des requêtes SOAP sans savoir seulement quelles parties du contenu SOAP sont importantes pour la mise en cache. SOAP utilise simplement HTTP comme un wrapper pour son propre protocole de communication, comme un proxy.

2
répondu aehlke 2009-07-20 17:54:23

REST est un style d'architecture pour la conception d'applications réseau. L'idée est que, plutôt que d'utiliser des mécanismes complexes tels que CORBA, RPC ou SOAP pour se connecter entre machines, Le HTTP simple est utilisé pour faire des appels entre machines.

2
répondu Hulk1991 2013-06-11 10:13:38

"151910920 – SOAP -" Simple Object Access Protocol"

SAVON de marseille est une légère de transfert de messages, ou de petites quantités de l'information sur Internet. Les messages SOAP sont formatés en XML et sont généralement envoyés en contrôlant HTTP .

repos - " État de représentation Transfert "

REST est un procédé rudimentaire d'éventualité et de réception de l'information entre ventilateur et serveur et il n'a pas sans équivoque beaucoup de normes définies. Vous pouvez envoyer et accepter des informations comme JSON , XML ou même du texte simple. C'est léger comparé à SOAP .

1
répondu 2015-02-04 16:34:00

SOAPbased Services Web En bref, le modèle des services basés sur le SAV considère le monde comme un écosystème de pairs égaux qui ne peuvent pas se contrôler les uns les autres, mais qui doivent travailler ensemble en honorant les contrats publiés. Il est valide modèle du monde réel désordonné, et les contrats basés sur les métadonnées forment L'Interface de service SOAP.

nous pouvons encore associer SOAP à des appels de procédure à distance basés sur XML, mais la technologie des services Web basés sur SOAP est devenue une solution flexible et puissant messagerie modèle.

SOAP suppose que tous les systèmes sont indépendants et aucun système n'a aucune connaissance des internes d'une autre fonctionnalité interne. La plupart de ces systèmes peuvent envoyer des messages les uns aux autres et espérer qu'on y donnera suite. Les systèmes publient les contrats qu'ils s'engagent à honorer, et d'autres systèmes comptent sur ces contrats pour échanger des messages avec eux.

Les contrats entre systèmes sont appelés collectivement métadonnées, il s'agit notamment des descriptions de services, des modèles d'échange de messages soutenus et des politiques régissant la qualité du service (un service peut besoin d'être crypté, livré de manière fiable,etc.) Une description de service, à son tour, est une spécification détaillée des données (documents de message) qui seront envoyées et reçues par le système. Les documents sont décrit en utilisant un langage de description XML comme la définition de schéma XML. Tant que tous les systèmes respectent leurs contrats publiés, ils peuvent interférer, et les changements aux internes des systèmes n'affectent personne d'autre. Chaque système est responsable de la traduction de ses propres implémentations et de ses contrats

REST-REpresentational State Transfer. La physique le protocole est HTTP. Fondamentalement, le reste est que toutes les ressources distinctes sur le web qui sont uniquement identifiables par une URL. Toutes les opérations qui peuvent être effectuées sur ces ressources peuvent être décrites par un ensemble limité de verbes (les verbes "CRUD") qui à leur tour carte pour les verbes HTTP.

REST's est beaucoup moins "poids lourd" que le savon.

fonctionnement du service web

-4
répondu kapil das 2016-01-23 19:59:20