web-dev-qa-db-fra.com

Quelle est la relation entre WCF, Rest et SOAP?

Quelle est la relation entre WCF et REST & SOAP? La WCF est-elle basée sur l'une de ces technologies (REST ou SOAP) ou s'agit-il d'une technologie distincte?

53
user1460819

WCF n'est pas automatiquement REST ou SOAP, mais vous pouvez le faire de cette façon. Ce dont vous avez besoin ici, c'est d'un tutoriel:

WCF

http://www.codeproject.com/Articles/406096/A-beginners-tutorial-for-understanding-Windows

REST

http://rest.elkstein.org/

Voici quelques autres choses intéressantes:

WCF - REST/SOAP

https://msdn.Microsoft.com/en-us/library/hh323708 (v = vs.100) .aspx

WCF et REST

https://msdn.Microsoft.com/en-us/library/ee391967.aspx

Ou vous pouvez faire une recherche google/bing/metacrawler/altavista vous-même .....

28
Mike C.

WCF est une infrastructure de messagerie pour la construction de systèmes distribués. Les systèmes distribués sont principalement un autre mot pour les services Web.

Cela signifie que vous pouvez écrire des méthodes en C # (ou n’importe lequel des langages .NET), puis appliquer un ensemble de configurations au code qui rend votre code accessible à d’autres et transforme votre code en un service Web.

Ces "groupes de configurations" sont WCF. WCF vous permet d’exposer vos méthodes à d’autres ordinateurs ou applications à l’aide de REST si vous configurez les configurations WCF autour de votre code C # afin de l’exposer en tant que service RESTful. Méthodes C # et les rendre disponibles via le protocole SOAP.

Si vous avez une méthode appelée "GetData ()", vous pouvez configurer la configuration WCF pour la rendre disponible dans un service hébergé dans IIS. Lorsque quelqu'un appelle ce service, il peut envoyer une requête HTTP GET à http://www.votredomaine.com/SomeService/GetData , et la méthode GetData recevra le message et renverra une réponse. Lorsque vous effectuez une demande GET sur HTTP, vous utilisez le REST. REST est assez lié à HTTP comme protocole de transport. REST n'a pas non plus le format de message standard. Quoi que vous vouliez envoyer dans votre message HTTP, et cependant Vous pouvez envoyer du XML, du JSON ou simplement du texte brut. Vous pouvez également utiliser POST, GET ou PUT ou n’importe lequel des verbes HTTP.

Avec SOAP, vos messages peuvent être envoyés au service en utilisant n’importe quel protocole de transport - vous n’êtes pas lié à HTTP. SOAP sont conçus pour être neutres en termes de transport. Ils sont codés en XML et le XML comporte toujours une tête et un noeud de corps dans un noeud d'enveloppe. Il existe de nombreuses normes Web autour SOAP - Normes pour l’inclusion de la sécurité, des sessions et d’autres fonctionnalités dans l’en-tête du message, par exemple. En outre, avec SOAP, vous obtenez un WSDL, que je ne vais pas expliquer ici, mais cela La plupart des langages de programmation ont une méthode pour extraire un WSDL et le convertir en méthodes et objets fortement typés, ce qui facilite l'appel de votre service.

REST est très populaire sur Internet et est aussi évolutif qu’Internet (c’est-à-dire très évolutif). SOAP est très populaire dans les applications business-to-business.

123
Trevor

De MSDN

Le modèle de programmation WCF fournit diverses fonctionnalités, telles que les services SOAP, les services Web HTTP, les services de données, les services d'application Internet riche (RIA) et les services de flux de travail.) SOAP = Les services prennent en charge l'interopérabilité entre les systèmes construits avec Java, d'autres plateformes et ceux utilisant les normes de messagerie prises en charge par Microsoft®. SOAP prennent également en charge les transports tels que HTTP, TCP, canaux nommés Les services Web HTTP et les services de données HTTP ainsi que les services de données prennent en charge REST. Les services Web HTTP vous permettent de contrôler l'emplacement du service, les demandes et les réponses, les formats et les protocoles. Les services de données permettent d'exposer des modèles de données et une logique pilotée par les données WCF comprend également deux modèles de programmation: le modèle de service et le modèle de canal, qui fournit un cadre pour la définition de contrats de données, de contrats de service et de comportements de service, et prend en charge la spécification de formats, de transports et de protocoles.

Les deux services SOAP et REST peuvent fournir des fonctionnalités aux applications Web, et les deux peuvent être utilisés pour échanger des informations dans l'environnement distribué du Web. Chacun a ses propres avantages et limitations.

10
l46kok

Bien que, cette question ait plusieurs bonnes réponses, en mettant juste dans mes 2 centimes, dans une tentative pour les débutants de [~ # ~] wcf [~ # ~] vs [~ # ~] savon [~ # ~] = vs [~ # ~] reste [~ # ~] - complet services, pour le rendre un peu plus facile à comprendre.

Nous avons des confusions, si WCF supporte les deux [~ # ~] reste [~ # ~] et [~ # ~] soap [~ # ~] ? Et normalement, nous voyons simplement des définitions génériques à propos de SOAP et RESTE . Nous avons donc besoin de quelque chose de Microsoft pour nous faire sentir la vérité:) Voici donc une capture d'écran de Microsoft MSDN :

MSDN article URLenter image description here

Donc, yes, WCF prend en charge les deux.

En contexte avec OP:

  • Services SOAP:
    dans le modèle de programmation WCF prend en charge l'interopérabilité entre les systèmes construits avec Java, d'autres plates-formes et ceux utilisant des normes de messagerie prises en charge par Microsoft®. Celles-ci prennent également en charge les transports tels que HTTP, TCP, les canaux nommés et MSMQ.
  • Services Web HTTP :
    dans le modèle de programmation WCF prend en charge [~ # ~] reste [~ # ~]. [Source: MSDN ]
4
Irf