2010-02-18 6 views
15

Qu'est-ce que cela rend les services Web reposants différents des autres services Web comme SOAP?Reposant par rapport à d'autres services Web

+0

duplication possible de [Pourquoi avons-nous besoin de services Web RESTful?] (Http://stackoverflow.com/questions/1368014/why-do-we-need-restful-web-services) – bummi

Répondre

28

Le débat sur les services Web est loin d'être complet, mais il y a des éléments qui ressortent.

Les services Web RESTful sont une «famille» de services Web. Certains l'appellent une architecture.

Les services Web RESTful utilisent le protocole HTTP pour effectuer des requêtes à partir d'un service Web. Ils utilisent les verbes HTTP: GET, POST, PUT et DELETE (et d'autres, parfois). Les demandes elles-mêmes sont à des URL qui représentent des ressources ... parfois les demandes contiendront des données dans le corps qui pourraient par HTML, JSON, données binaires ou autre. Un service Web purement RESTful nécessite uniquement l'URL et le verbe HTTP pour décrire l'action demandée ... les données du corps sont généralement une charge utile à impliquer dans l'action demandée ... il ne doit pas dicter l'action demandée

SOAP, d'autre part, est en fait un protocole. Il est généralement transporté sur HTTP, mais la requête HTTP est juste une méthode pour obtenir le paquet SOAP au gestionnaire nécessaire. Le contenu de la demande SOAP décrit ce que le client veut effectuer. Il contient toutes les informations nécessaires.

Il s'agit de deux manières très différentes de mettre en œuvre des services Web. Si vous posez la question "Quel est le meilleur", vous obtiendrez probablement des opinions solides des deux côtés. Je vous suggère d'enquêter plus avant et de vous faire votre propre opinion.

12

A RESTful Le service Web (également appelé API web RESTful) est un service Web simple implémenté en utilisant HTTP et les principes de REST. Un tel service Web peut être considéré comme une collection de ressources. La définition d'un tel service Web peut être considéré comme comportant trois aspects:

  • L'URI de base pour le service Web, comme http://example.com/resources/
  • Le type MIME des données prises en charge par le service Web. Ceci est souvent JSON, XML ou YAML mais peut être n'importe quel autre type MIME valide.
  • Ensemble des opérations prises en charge par le service Web à l'aide de méthodes HTTP (par exemple, POST, GET, PUT ou DELETE).

SOAP, défini à l'origine comme Simple Object Access Protocol, est une spécification de protocole d'échange d'informations structurées dans la mise en œuvre des services Web dans les réseaux informatiques. Il s'appuie sur le langage XML (eXtensible Markup Language) comme format de message et s'appuie généralement sur d'autres protocoles Application Layer (notamment RPC (Remote Procedure Call) et HTTP) pour la négociation et la transmission de messages. Ce protocole XML basé se compose de trois parties:

  • une enveloppe - qui définit ce qui est dans le message et la manière de traiter ce -
  • un ensemble de règles de codage pour exprimer les instances de types de données définies par l'application,
  • et une convention pour représenter les appels de procédure et les réponses.

Références:

Par ailleurs, une simple recherche Google pourrait fournir des réponses pour vous ...

+0

-1 voyage rapide vers le wiki, hein. Je ne suis pas sûr de ce que je pense des réponses «cut-n-collage». Pas même une référence à http://en.wikipedia.org/wiki/Representational_State_Transfer. Kinda rend le temps que j'ai passé sans valeur. –

+0

+2 pour références. –

2

Les services RESTful se concentrent sur la rapidité et la simplicité, en éliminant les frais généraux de SOAP pour les transactions simples requises par de nombreux services Web. Cependant, un service implémenté de cette manière est très spécifique à HTTP, et vous aurez du mal à l'utiliser en dehors de ce contexte.

Les services SOAP offrent davantage de fonctionnalités prêtes à l'emploi, dont la plus importante (à l'évidence, bien sûr) est la découverte. La possibilité d'ajouter une référence à un service SOAP dans n'importe quel environnement de développement et de générer automatiquement une classe proxy qui masquera les complexités HTTP sous-jacentes, même au point de sérialiser des types non triviaux, est très, très utile. Je pense que ces deux approches du développement de services Web ont leur place. Pour les besoins AJAX qui ne requièrent rien de complexe, j'ai tendance à l'implémenter en tant que gestionnaire HTTP (ASP.NET). Tout ce qui doit être appelé depuis une autre application, ou depuis plusieurs endroits dans la même application, je l'implémente en tant que service SOAP en raison de l'encapsulation de protocole qu'il fournit, ainsi que de la possibilité d'appeler l'objet sous-jacent sans le préfixe HTTP où cela a du sens.

4

Ok il y a une richesse de connaissances dans Stack Overflow sur ce sujet.

Je pense que le meilleur article qui articule l'esprit de REST et comment il se compare à des technologies comme SOAP est How I explained REST to my wife. Contrairement à SOAP, REST n'est pas un standard mais plutôt une approche centrée sur les ressources et les choses que vous pouvez faire pour les ressources. Les verbes HTTP GET, POST, PUT et DELETE sont des actions typiques que vous pouvez appliquer à n'importe quelle ressource. SOAP est une norme qui ignore ces verbes et a inventé un protocole plus complet qui fonctionne en plus du verbe HTTP POST le plus populaire pour une interopérabilité maximale. La plupart du temps, cette complexité supplémentaire est inutile et une simple requête HTTP GET pour une ressource suffirait normalement sur ce qui pourrait être potentiellement 1KB + de SOAP + XML pour obtenir un résultat équivalent.

Vous pouvez également consulter Roy Fielding's blog (l'inventeur de REST) ​​pour plus d'informations sur ce que cela signifie.

+0

Lien Greeeeeat sur l'explication de la femme, bookmarked celui-là à coup sûr! – jaywon

+0

Wow pour l'explication de la femme! Je ne peux pas croire que j'ai reçu des upvotes. Vaut un million! – Achow

+2

Malheureusement, il n'est plus disponible, l'auteur l'a supprimé. – Tanoh

1

1) REST est plus simple et plus facile à utiliser que SOAP 2) REST utilise le protocole HTTP pour produire ou consommer des services Web alors que SOAP utilise XML. 3) REST est léger par rapport à SOAP et le choix préféré dans les appareils mobiles et les PDA. 4) REST supporte différents formats comme le texte, JSON et XML tandis que SOAP ne supporte que le XML. 5) L'appel des services Web REST peut être mis en cache pour améliorer les performances.

Questions connexes