Was ist der Unterschied zwischen einer Web-API und einem Webdienst?

136

Gibt es einen Unterschied zwischen einer Web-API und einem Webdienst ? Oder sind sie ein und dasselbe?

Sansh
quelle
Siehe auch: API vs. Webservice [geschlossen]
Hippietrail
2
Siehe auch Programmierer. SE
Hippietrail
3
Eine API ist die veröffentlichte Schnittstelle, während der Dienst die Implementierung ist, die im Backend ausgeführt wird.
Rasika Perera
1
Bitte lesen Sie die Antworten mit Vorsicht. Einige von ihnen entweder veraltet oder ungültig
Menuka Ishan
Fügen Sie
web-services-und-

Antworten:

71

Ein Webdienst bietet normalerweise eine WSDL, aus der Sie automatisch Client-Stubs erstellen können. Webdienste basieren auf dem SOAP-Protokoll . Die ASP.NET-Web-API ist ein neueres Microsoft-Framework, mit dem Sie REST-basierte Schnittstellen erstellen können . Die Antwort kann entweder JSON oder XML sein, es gibt jedoch keine Möglichkeit, Clients automatisch zu generieren, da die Web-API keine Dienstbeschreibung wie die WSDL von Web Services bietet. Es hängt also von Ihren Anforderungen ab, welche der Techniken Sie verwenden möchten. Vielleicht passt sogar WCF besser zu Ihren Anforderungen. Schauen Sie sich einfach die MSDN-Dokumentation an.

TMK
quelle
7
Webdienste basieren NICHT unbedingt auf dem SOAP-Protokoll.
Horkrux
3
technisch veraltete Antwort
Arun Raaj
4
"ASP.NET Web API" ist ein Microsoft-Framework, nicht "Web API".
Amir Hossein Ahmadi
veraltete Antwort, besuchen Sie diesen Link microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad
41

Der grundlegende Unterschied zwischen Webdiensten und Web-APIs

Internetservice:

1) Es ist ein SOAP-basierter Dienst und gibt Daten als XML zurück.

2) Es wird nur das HTTP-Protokoll unterstützt.

3) Es ist kein Open Source, kann aber von jedem Client verwendet werden, der XML versteht.

5) Zum Empfangen und Senden von Daten über das Netzwerk ist ein SOAP-Protokoll erforderlich, daher handelt es sich nicht um eine leichte Architektur.

Web-API:

1) Eine Web-API ist ein HTTP-basierter Dienst und gibt standardmäßig JSON- oder XML-Daten zurück.

2) Es unterstützt das HTTP-Protokoll.

3) Es kann in einer Anwendung oder einem IIS gehostet werden.

4) Es ist Open Source und kann von jedem Client verwendet werden, der JSON oder XML versteht.

5) Es hat eine leichte Architektur und eignet sich für Geräte mit begrenzter Bandbreite, wie mobile Geräte.

Vaibhav Shiledar
quelle
7
Ein Webdienst kann an vielen Orten gehostet werden, nicht nur an IIS
Ignacio Soler Garcia
3
Praktisch alle Punkte sind falsch. Ich kann nicht verstehen, wie 40 Benutzer ihre Stimme abgegeben haben könnten.
Horkrux
1
@horcrux Ich stimme zu. Ein Webdienst ist kein SOAP-basierter Dienst.
Ryan Shillington
Die verwirrendste Antwort, die ich je gesehen habe.
Mhrsalehi
23

API vs Web Service

Habe gerade die Zusammenfassung des verlinkten Artikels eingefügt:

Zusammenfassung:

  1. Alle Webdienste sind APIs, aber alle APIs sind keine Webdienste.

  2. Webdienste führen möglicherweise nicht alle Vorgänge aus, die eine API ausführen würde.

  3. Ein Webdienst verwendet nur drei Verwendungsstile: SOAP, REST und XML-RPC für die Kommunikation, während die API für die Kommunikation einen beliebigen Stil verwenden kann.

  4. Ein Webdienst benötigt für seinen Betrieb immer ein Netzwerk, während eine API für ihren Betrieb kein Netzwerk benötigt.

  5. Eine API erleichtert die direkte Verbindung mit einer Anwendung, während ein Webdienst ein ...

Lesen Sie mehr: Unterschied zwischen API und Web Service | Unterschied zwischen | API vs Web Service http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Die vollständige Antwort finden Sie unter dem obigen Link.

Zia Ur Rahman
quelle
10
Aber die Frage betrifft den Unterschied zwischen WebAPI und WebService, nicht "API"
Kulbhushan Singh
Außerdem ist der Punkt 3 nicht korrekt. Es ist irreführend und hilft nur, Verwirrung über das Thema "SOAP vs. REST" zu stiften.
Horkrux
9

Für weitere Informationen besuchen Sie diesen Link Diagramm

Adiii
quelle
2
Warum? Aus diesem Bild geht hervor, dass SOAP-Webdienste nicht auf Smartphones oder sogar auf Desktops verwendet werden können. Ja wirklich? Jemand zwingt Sie, JSON anstelle von XML auf diesen Plattformen zu lesen?
AndreaCi
Wenn Sie XML lesen, bedeutet dies nicht, dass der SOAP-Basisdienst REST auch Command Separated Value (CSV), JavaScript Object Notation (JSON) und Really Simple Syndication (RSS) unterstützt.
Adiii
7

Wenn Sie möchten, ist ein Webdienst eine Web-API. Insbesondere bedeutet Web-API normalerweise RESTful (HTTP-basiert) Webdienst und Webdienst bedeutet normalerweise SOAP + WSDL (+ HTTP oder SMTP oder JMS ..).

Typischerweise sind RESTful-Webdienste im Gegensatz zu Webdiensten (WSDL, SOAP), aber kürzlich wurde der Begriff RESTful-Webdienste (mit Großbuchstaben 'W') eingeführt, der RESTful + WSDL + SOAP bedeutet.

In dieser Tabelle finden Sie Unterschiede zwischen den drei Konzepten: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Ich hoffe es hilft!

Gabe
quelle
4

Der Webdienst ist absolut derselbe wie die Web-API - nur ein bisschen eingeschränkter in Bezug auf das zugrunde liegende Datenformat. Beide verwenden das HTTP-Protokoll und beide ermöglichen das Erstellen von RESTful-Diensten. Und vergessen Sie nicht, andere Protokolle wie JSON-RPC zu verwenden - vielleicht passen sie besser.

Vincent
quelle
1
Nicht "absolut gleich", wenn es jetzt Einschränkungen gibt, oder?
Ojonugwa Jude Ochalifu
0

Im Kontext von ASP.Net ist eine Web-API ein Controller, dessen Basisklasse ApiController ist und keine Ansichten verwendet. Ein Webdienst ist eine von WebService abgeleitete Klasse mit automatischer WSDL-Generierung. Standardmäßig handelt es sich um eine SOAP-API. Sie können JSON jedoch auch verwenden, indem Sie ein ScriptServiceAttribute hinzufügen .

jmoffatt
quelle
0

API und Webdienst dienen als Kommunikationsmittel.

Der einzige Unterschied besteht darin, dass ein Webdienst die Interaktion zwischen zwei Computern über ein Netzwerk erleichtert. Eine API fungiert als Schnittstelle zwischen zwei verschiedenen Anwendungen, damit diese miteinander kommunizieren können . Eine API ist eine Methode, mit der Drittanbieter Programme schreiben können, die sich problemlos mit anderen Programmen verbinden lassen. Ein Webdienst verfügt über eine Schnittstelle, die in einem maschinenverarbeitbaren Format dargestellt wird, das normalerweise in der WSDL (Web Service Description Language) angegeben wird.

Alle Webdienste sind APIs, aber nicht alle APIs sind Webdienste.

Ein Webdienst ist lediglich eine in HTTP eingeschlossene API.


Dieser hier Artikel bietet gute Kenntnisse über Web - Service und API.

KamalDeep
quelle
-2

Nun, TMK mag in der Microsoft-Welt richtig sein, aber in der Welt aller Software, einschließlich Java / Python / etc, glaube ich, dass es keinen Unterschied gibt. Sie sind das gleiche.

Ryan Shillington
quelle
-2

Der Unterschied zwischen Webdienst und Web-API wird hier gut erklärt:

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

Text vom Link:

Web Services - das ist der von W3C definierte Standard, sodass halbautomatisch oder automatisch auf sie zugegriffen werden kann (WSDL / UDDI). Das Ganze basiert auf XML, so dass jeder es aufrufen kann. Und jeder Aspekt des Dienstes ist sehr gut definiert. Es gibt Parameterbeschreibungsstandard, Parameterübergabestandard, Antwortstandard, Erkennungsstandard usw. usw. Sie könnten wahrscheinlich ein Buch mit 2000 Seiten schreiben, das den Standard beschreibt. Es gibt sogar einige "zusätzliche" Standards für "Standard" -Dinge wie die Authentifizierung.

Trotz der Tatsache, dass das automatische Aufrufen und Erkennen kaum funktioniert, weil die Clients eher schlecht sind und Sie keine wirkliche Garantie dafür haben, dass ein Service von einem beliebigen Client aufgerufen werden kann.

Die Web-API wird normalerweise als HTTP / REST ausgeführt. Es ist nichts definiert. Die Ausgabe kann z. JSON / XML, Eingabe kann XML / JSON / oder einfache Daten sein. Es gibt keine Standards für irgendetwas => kein automatisches Aufrufen und Erkennen. Sie können eine Beschreibung in Textdatei oder PDF bereitstellen, Sie können die Daten in Windows-1250 anstelle von Unicode zurückgeben usw. Zur Beschreibung des Standards wäre es eine 2-seitige Broschüre mit einigen einfachen Informationen, und Sie definieren alles andere.

Das Web wechselt zu Web API / REST. Webdienste sind wirklich nicht besser als die Web-API. Sehr kompliziert zu entwickeln und sie verbrauchen viel mehr Ressourcen (Bandbreite und RAM) ... und aufgrund aller Datenkonvertierungen (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) sind sehr langsam.

Z.B. In WebAPI können Sie die Daten packen, komprimiert senden und auf dem Client dekomprimieren + entpacken. In SOAP konnten Sie nur HTML-Anforderungen komprimieren.

csh
quelle
-2

Alle WebServices sind APIs, aber alle APIs sind keine WebServices. APIs, die im Web verfügbar gemacht werden, werden als Webdienste bezeichnet.

Pavan T.
quelle
Der Webdienst ist der von W3C definierte Standard, ein gut dokumentierter Dienst für die Software von Drittanbietern zur Interaktion über XML (WSDL / UDDI). Web-API ist die API über HTTP, nicht gut dokumentiert, hat ihren eigenen Standard. Und API im Allgemeinen kann über einen Internetzugang verfügen, um mit anderen Anwendungen zu kommunizieren, und kann auch andere Protokolle haben, z. B. API für Systemaufrufe, um Ihr Terminal / cmd im Betriebssystem zu kommunizieren.
Imam Bux
-3

Zwei Dinge sind sehr einfach zu verstehen,

  1. API: Es handelt sich um eine Anwendungsebene, die andere Anwendungsanforderungen lokal bedienen kann.
  2. Webservice: Ist eine API, die Anfragen und Antworten über das Netzwerk von einem Remote-System über das Web oder das Internet bedienen kann.

Hinweis: Alle Webdienste sind APIs, aber nicht alle APIs sind Webdienste

Pavan T.
quelle
Sowohl vor Ort als auch über das Internet
Pavan T