Quelle est la différence entre une API Web et un service Web?


136

Y a-t-il une différence entre une API Web et un service Web ? Ou sont-ils identiques?




3
Une API est l'interface publiée, tandis que le service est l'implémentation exécutée dans le backend.
Rasika Perera

1
Veuillez lire les réponses avec prudence. Certains d'entre eux sont obsolètes ou invalides
Menuka Ishan

juste en ajoutant une autre explication brillante - quora.com/What-is-the-difference-between-web-services-and-API
Ashish Shetkar

Réponses:


71

Un service Web propose généralement un WSDL à partir duquel vous pouvez créer automatiquement des stubs client. Les services Web sont basés sur le protocole SOAP . L'API Web ASP.NET est un nouveau framework Microsoft qui vous aide à créer des interfaces basées sur REST . La réponse peut être JSON ou XML, mais il n'existe aucun moyen de générer automatiquement des clients car l'API Web n'offre pas de description de service comme le WSDL des services Web. Cela dépend donc de vos besoins et de l'une des techniques que vous souhaitez utiliser. Peut-être même WCF répond-il mieux à vos besoins, il suffit de consulter la documentation MSDN.


7
Les services Web ne sont PAS nécessairement basés sur le protocole SOAP.
horcrux

3
réponse techniquement obsolète
Arun Raaj

4
«ASP.NET Web API» est un framework Microsoft, pas «Web API» lui-même.
Amir Hossein Ahmadi

réponse obsolète, visitez ce lien microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad

41

La différence fondamentale entre les services Web et les API Web

Service Web:

1) Il s'agit d'un service basé sur SOAP et renvoie des données au format XML.

2) Il ne prend en charge que le protocole HTTP.

3) Il n'est pas open source mais peut être utilisé par tout client qui comprend XML.

5) Il nécessite un protocole SOAP pour recevoir et envoyer des données sur le réseau, ce n'est donc pas une architecture légère.

API Web:

1) Une API Web est un service basé sur HTTP et renvoie des données JSON ou XML par défaut.

2) Il prend en charge le protocole HTTP.

3) Il peut être hébergé dans une application ou IIS.

4) Il est open source et il peut être utilisé par n'importe quel client qui comprend JSON ou XML.

5) Il a une architecture légère et convient aux appareils qui ont une bande passante limitée, comme les appareils mobiles.


7
Un service Web peut être hébergé sur de nombreux endroits, pas seulement IIS
Ignacio Soler Garcia

3
Pratiquement tous les points sont faux. Je ne comprends pas comment 40 utilisateurs auraient pu voter.
horcrux

1
@horcrux Je suis d'accord. Un service Web n'est pas nécessaire un service basé sur SOAP.
Ryan Shillington

la réponse la plus déroutante que j'aie jamais vue.
mhrsalehi

23

API vs service Web

Je viens de coller le résumé de l'article lié:

Résumé:

  1. Tous les services Web sont des API mais toutes les API ne sont pas des services Web.

  2. Les services Web peuvent ne pas effectuer toutes les opérations qu'une API effectuerait.

  3. Un service Web n'utilise que trois styles d'utilisation: SOAP, REST et XML-RPC pour la communication, tandis que l'API peut utiliser n'importe quel style pour la communication.

  4. Un service Web a toujours besoin d'un réseau pour son fonctionnement alors qu'une API n'a pas besoin d'un réseau pour son fonctionnement.

  5. Une API facilite l'interfaçage directement avec une application alors qu'un service Web est un ...

Lire la suite: Différence entre API et service Web | Différence entre | API vs service Web http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Voir le lien ci-dessus pour la réponse complète.


10
Mais, la question porte sur la différence entre WebAPI et WebService, pas sur "API"
Kulbhushan Singh

De plus, le point 3 n'est pas correct. C'est trompeur et cela contribue simplement à semer la confusion sur le sujet "SOAP vs REST".
horcrux

9

pour plus de détails, visitez ce lien Diagramme


2
Pourquoi? à partir de cette image, il semble que les services Web SOAP ne peuvent pas être utilisés sur les smartphones ... ou même sur les ordinateurs de bureau? vraiment? quelqu'un vous oblige à lire JSON au lieu de XML sur ces plates-formes?
AndreaCi

si vous lisez xml, cela ne signifie pas que le service de base SOAP REST prend également en charge la valeur séparée par commande (CSV), la notation d'objet JavaScript (JSON) et la syndication vraiment simple (RSS).
Adiii

7

Un service Web si vous le souhaitez est une API Web. Plus précisément, API Web signifie généralement service Web RESTful (basé sur HTTP) et Service Web signifie généralement SOAP + WSDL (+ HTTP ou SMTP ou JMS ..).

Typiquement, les services Web RESTful sont opposés aux services Web (WSDL, SOAP), mais il a récemment été introduit le terme services Web RESTful (avec 'W' en majuscule) qui signifie RESTful + WSDL + SOAP.

Consultez ce tableau pour les différences entre les trois concepts: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

J'espère que ça aide!


4

Le service Web est absolument identique à l'API Web - juste un peu plus restreint en termes de format de données sous-jacent. Les deux utilisent le protocole HTTP et les deux permettent de créer des services RESTful. Et n'oubliez pas les autres protocoles comme JSON-RPC - peut-être qu'ils s'adaptent mieux.


1
Pas "absolument les mêmes" s'il y a des restrictions maintenant, n'est-ce pas?
Ojonugwa Jude Ochalifu

0

Dans le contexte d'ASP.Net, une API Web est un contrôleur dont la classe de base est ApiController et n'utilise pas de vues. Un service Web est une classe dérivée de WebService et dispose d'une génération WSDL automatique. Par défaut, il s'agit d'une API SOAP, mais vous pouvez également utiliser JSON en ajoutant un ScriptServiceAttribute .


0

L'API et le service Web servent de moyen de communication.

La seule différence est qu'un service Web facilite l'interaction entre deux machines sur un réseau. Une API agit comme une interface entre deux applications différentes afin qu'elles puissent communiquer entre elles . Une API est une méthode par laquelle des fournisseurs tiers peuvent écrire des programmes qui s'interfacent facilement avec d'autres programmes. Un service Web est conçu pour avoir une interface qui est représentée dans un format traitable par machine généralement spécifié dans le langage de description de service Web (WSDL)

Tous les services Web sont des API, mais toutes les API ne sont pas des services Web.

Un service Web est simplement une API enveloppée dans HTTP.


Cet article ici fournit de bonnes connaissances sur le service Web et l'API.


-2

Eh bien, TMK a peut-être raison dans le monde Microsoft, mais dans le monde de tous les logiciels, y compris Java / Python / etc, je pense qu'il n'y a pas de différence. C'est la même chose.


-2

Différence entre le service Web et l'API Web bien expliquée ici:

/software/38691/difference-between-web-api-and-web-service

Texte du lien:

Services Web - c'est la norme définie par le W3C, afin qu'ils soient accessibles de manière semi-automatique ou automatique (WSDL / UDDI). Le tout est basé sur XML, donc n'importe qui peut l'appeler. Et chaque aspect du service est très bien défini. Il y a la norme de description des paramètres, la norme de passage des paramètres, la norme de réponse, la norme de découverte, etc. etc. Vous pourriez probablement écrire un livre de 2000 pages décrivant la norme. Il existe même des normes "supplémentaires" pour faire des choses "standard", comme l'authentification.

Malgré le fait que l'appel et la découverte automatiques fonctionnent à peine car les clients sont plutôt pauvres et vous n'avez aucune garantie réelle que n'importe quel service peut être appelé depuis n'importe quel client.

L'API Web est généralement exécutée comme HTTP / REST, rien n'est défini, la sortie peut être par exemple. JSON / XML, l'entrée peut être XML / JSON / ou des données simples. Il n'y a aucune norme pour quoi que ce soit => pas d'appel et de découverte automatiques. Vous pouvez fournir une description dans un fichier texte ou PDF, vous pouvez renvoyer les données dans Windows-1250 au lieu d'unicode, etc. Pour décrire la norme, ce serait une brochure de 2 pages avec quelques informations simples et vous définirez tout le reste.

Le Web passe à l'API Web / REST. Les services Web ne sont vraiment pas meilleurs que l'API Web. Très compliqués à développer et ils consomment beaucoup plus de ressources (bande passante et RAM) ... et à cause de toutes les conversions de données (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) sont très lent.

Par exemple. Dans WebAPI, vous pouvez emballer les données, les envoyer compressées et décompresser + décompresser sur le client. Dans SOAP, vous ne pouviez compresser que la requête HTML.


-2

Tous les WebServices sont des API mais toutes les API ne sont pas des WebServices, les API qui sont exposées sur le Web sont appelées services Web.


Le service Web est le standard défini par le W3C, un service bien documenté permettant aux logiciels tiers d'interagir via XML (WSDL / UDDI). L'API Web est l'API sur HTTP, pas bien documentée, a sa propre norme. Et l'API en général est quelque chose qui peut ou ne peut pas avoir accès à Internet pour parler à d'autres applications et peut également avoir d'autres protocoles, par exemple l'API pour les appels système pour parler de votre terminal / cmd dans OS.
Imam Bux

-3

Deux choses sont très simples à comprendre,

  1. API: c'est une couche sur l'application qui peut servir d'autres demandes d'application localement.
  2. Service Web: est une API qui peut servir la demande et répondre sur le système distant du réseau via le Web ou Internet.

Remarque: tous les services Web sont des API, mais toutes les API ne sont pas des services Web


Sur local et sur le Web
Pavan T
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.