47 votes

Pourquoi n'est-il pas de SAVON services web RESTful?

Je comprends RESTful est une architecture de style, mais que fait exactement SAVON services web de base comptent pas de repos?

Il n'est pas clair pour moi que les points ci-dessous (tiré de Wikipédia), n'est pas conforme par le SAVON.

  1. Client-serveur
  2. Apatrides
  3. Pouvant être mis en cache
  4. Système de couches
  5. Code sur demande (en option)
  6. Interface uniforme
    • L'Identification des ressources
    • La Manipulation de ressources par le biais de ces représentations
    • Auto-descriptif des messages
    • Hypermédia comme le moteur de l'état de l'application

EDIT: je viens de tomber sur ce qui résumés assez bien.

Le REPOS n'est pas RPC RPC dit, de "définir quelques méthodes que de faire quelque chose" alors que RESTE dit, de "définir certains ressources et qu'ils ont l'un de ces les méthodes". C'est un subtil mais la différence essentielle, lors d'une URI quelqu'un sait qu'ils peuvent interagir avec lui via les prédéfinis ensemble de méthodes et de recevoir standard HTTP réponses en retour. Donc, étant donné http://www.peej.co.uk/ je sais que je peux question un OBTENIR sur elle, et de recevoir quelque chose de significatif en arrière. Je puis peut essayez un de METTRE sur elle pour se changer et recevoir un véritable code d'erreur HTTP depuis que je ne suis pas autorisé à intervenir avec elle.

56voto

Christian Hayter Points 17999

Le REPOS et le SAVON ne sont pas des concepts équivalents.

RESTE:

  • Dépend de transport protocol (HTTP).
  • Utilise pleinement les fonctionnalités spécifiques de ce protocole (verbes GET, POST, PUT, DELETE, la mise en cache, en-têtes, et prédéfinies codes d'erreur).
  • Ne dit rien sur le format des messages échangés. Cependant, puisque le verbe HTTP URL et déjà définir les mesures à prendre, le corps du message doit donc contenir uniquement les données.
  • Message de sécurité est fourni par le protocole de transport (HTTPS), et point-à-point. Si vous voulez vous assurer que le message de bout en bout, vous devez le faire vous-même.
  • Initialement prévu pour de simples opérations CRUD sur les objets.

SAVON:

  • Indépendant du protocole de transport (par exemple HTTP, FTP, TCP, UDP, pipes nommés, la mémoire partagée ou même e-mail).
  • Exige seulement que le protocole de transport d'être en mesure d'envoyer et de recevoir du texte (par exemple sur HTTP, seul le verbe POST est utilisé).
  • Strictement définit le format des messages échangés. Un message SOAP contient les données, l'action à effectuer, les en-têtes, et les détails de l'erreur en cas d'échec.
  • Message de sécurité est fourni par les normes WS -*, et est de bout en bout.
  • Initialement prévu pour arbitraire des appels RPC.

Les articles 2 et 3 dans les listes ci-dessus sont les principaux points de l'incompatibilité.

48voto

Trevor Johns Points 9310

SAVON suit le modèle RPC. Une API SOAP décrit une série de méthodes, ainsi que leurs paramètres et valeurs de retour, que vous pouvez appeler à partir de votre code. Il y a un regroupement étape qui le convertit en elle la représentation de réseau.

Le REPOS n'est jamais RPC. Une API REST décrit une série de ressources, le long avec un ensemble de verbes (généralement HTTP GET, POST, PUT, DELETE) qui peuvent agir sur eux.

Pour répondre directement à votre question: SAVON principalement viole le point 6 (il ne fournit pas un ensemble uniforme de verbes à travers des Api). Il viole aussi le point 2 (le serveur peut maintenir l'état pour chaque client), et comme un résultat, point 3, ainsi (état empêche la mise en cache).

5voto

Piotr Zolnierek Points 424

L'un des objectifs de REPOS est la possibilité de mise en cache, pour que la ressource doit être identifié par l'uri (query string). Dans la fabrication de savon la demande est validée, à cet effet, pour les différentes demandes que vous avez le même uri et donc de la ressource ne peut pas être identifié de manière unique par l'ur

4voto

Pierreten Points 3583

RESTE conforme à rien de plus que le protocole http.

2voto

Android Genius Points 41

Reposant : REST est un style architectural pour la construction de web service à l'aide du protocole HTTP, où les services web sont traitées comme des ressources, ainsi que des méthodes HTTP GET, POST, DELETE sont utilisés pour identifier la norme d'action sur les ressources. Web RESTful API (également appelé un service web RESTful) est une API web mis en œuvre à l'aide de HTTP et le RESTE principes.

Savon : SAVON, défini à l'origine comme Simple Object Access Protocol, est un protocole de spécification pour l'échange d'informations structurées 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