web-dev-qa-db-fra.com

Différence entre les services reposants wcf et l'API WEB

Je suis interrogé depuis longtemps maintenant.Où exactement nous devons utiliser l'API WEB et où devrions-nous utiliser les services reposants WCF. Tout ce que nous voulons réaliser dans l'API WEB, nous pouvons le faire dans WCF Rest. J'ai essayé de creuser dans les réponses mais j'ai compris que nous devons faire des réglages supplémentaires dans wcf comme les modèles d'URI, les contrats, les points de terminaison. Mais c'est plus sur les paramètres, mais je voulais connaître la vraie raison derrière l'utilisation de WCF Restful Services.

10
abhijit

Service Web

  • Il est basé sur SOAP et renvoie des données au format XML.
  • Il prend uniquement en charge le protocole HTTP.
  • Il n'est pas open source mais peut être consommé par n'importe quel client qui comprend XML.
  • Il ne peut être hébergé que sur IIS.


[~ # ~] wcf [~ # ~]

  • Il est également basé sur SOAP et renvoie des données au format XML.
  • C'est l'évolution des services Web (ASMX) et prend en charge divers protocoles comme TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • Le principal problème avec WCF est sa configuration fastidieuse et étendue.
  • Il n'est pas open source mais peut être consommé par n'importe quel client qui comprend XML.
  • Il peut être hébergé avec dans l'application ou sur IIS ou en utilisant le service de fenêtre.


WCF REST

  • Pour utiliser WCF en tant que service WCF REST, vous devez activer webHttpBindings.
  • Il prend en charge HTTP GET et POST verbes par [WebGet] et [WebInvoke] attributs respectivement.
  • Pour activer d'autres verbes HTTP, vous devez effectuer une configuration dans IIS pour accepter la demande de ce verbe particulier sur .svc des dossiers.
  • La transmission de données via des paramètres à l'aide d'un WebGet nécessite une configuration. UriTemplate doit être spécifié.
  • Il prend en charge XML, JSON et ATOM.


API Web

  • Il s'agit du nouveau cadre pour la création de services HTTP de manière simple et simple.
  • L'API Web est open source, une plate-forme idéale pour créer des services RESTful à l'aide du .NET Framework.
  • Contrairement à un WCF REST, il utilise toutes les fonctionnalités de HTTP (comme les URI, les en-têtes de demande/réponse, la mise en cache, le contrôle de version, divers formats de contenu).
  • Il prend également en charge les fonctionnalités MVC telles que le routage, les contrôleurs, les résultats d'action, le filtre, les liants de modèle, IOC conteneur ou injection de dépendance, les tests unitaires qui le rendent plus simple et robuste.
  • Il peut être hébergé dans l'application ou sur IIS.
  • C'est une architecture légère et bonne pour les appareils qui ont une bande passante limitée comme les téléphones intelligents.
  • Les réponses sont formatées par MediaTypeFormatter de l'API Web en JSON, XML ou tout autre format que vous souhaitez ajouter en tant que MediaTypeFormatter.


Choix entre WCF ou API Web

  • Choisissez WCF lorsque vous souhaitez créer un service qui devrait prendre en charge des scénarios spéciaux tels que la messagerie unidirectionnelle, les files d'attente de messages, la communication duplex, etc.
  • Choisissez WCF lorsque vous souhaitez créer un service pouvant utiliser des canaux de transport rapides lorsqu'ils sont disponibles, tels que TCP, canaux nommés ou peut-être même UDP (dans WCF 4.5), et vous souhaitez également prendre en charge HTTP lorsque tous les autres canaux de transport ne sont pas disponibles.
  • Choisissez l'API Web lorsque vous souhaitez créer des services orientés ressources sur HTTP qui peuvent utiliser toutes les fonctionnalités de HTTP (comme les URI, les en-têtes de demande/réponse, la mise en cache, le contrôle de version, divers formats de contenu).
  • Choisissez l'API Web lorsque vous souhaitez exposer votre service à un large éventail de clients, notamment les navigateurs, les mobiles, l'iPhone et les tablettes.

Pour plus de détails, vous pouvez vous référer à http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/ .

21
Mohit