Qual è la differenza tra un'API Web e un servizio Web?


136

C'è qualche differenza tra un'API Web e un servizio Web ? O sono la stessa cosa?




3
Un'API è l'interfaccia pubblicata, mentre il servizio è l'implementazione in esecuzione nel back-end.
Rasika Perera,

1
Si prega di leggere le risposte con cautela. Alcuni di essi sono obsoleti o non validi
Menuka Ishan,

Risposte:


71

Un servizio Web offre in genere un WSDL da cui è possibile creare automaticamente stub client. I servizi Web si basano sul protocollo SOAP . L'API Web ASP.NET è un framework Microsoft più recente che consente di creare interfacce basate su REST . La risposta può essere JSON o XML, ma non è possibile generare automaticamente i client poiché l'API Web non offre una descrizione del servizio come WSDL dai servizi Web. Quindi dipende dalle tue esigenze quale delle tecniche che vuoi usare. Forse anche WCF soddisfa meglio le tue esigenze, basta guardare la documentazione MSDN.


7
I servizi Web NON sono necessariamente basati sul protocollo SOAP.
horcrux,

3
risposta tecnicamente obsoleta
Arun Raaj

4
"ASP.NET Web API" è un framework Microsoft, non "Web API" stesso.
Amir Hossein Ahmadi,

risposta obsoleta, visita questo link microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad,

41

La differenza di base tra servizi Web e API Web

Servizio web:

1) È un servizio basato su SOAP e restituisce i dati come XML.

2) Supporta solo il protocollo HTTP.

3) Non è open source ma può essere utilizzato da qualsiasi client che comprenda XML.

5) Richiede un protocollo SOAP per ricevere e inviare dati sulla rete, quindi non è un'architettura leggera.

API Web:

1) Un'API Web è un servizio basato su HTTP e restituisce i dati JSON o XML per impostazione predefinita.

2) Supporta il protocollo HTTP.

3) Può essere ospitato all'interno di un'applicazione o IIS.

4) È open source e può essere utilizzato da qualsiasi client che comprenda JSON o XML.

5) Ha un'architettura leggera e buona per i dispositivi che hanno una larghezza di banda limitata, come i dispositivi mobili.


7
Un servizio web può essere ospitato in molti luoghi, non solo IIS
Ignacio Soler Garcia,

3
Praticamente tutti i punti sono sbagliati. Non riesco a capire in che modo 40 utenti possano aver votato per eccesso.
Horcrux,

1
@horcrux Sono d'accordo. Un servizio Web non è necessario un servizio basato su SOAP.
Ryan Shillington,

la risposta più confusa che abbia mai visto.
mhrsalehi,

23

API vs servizio Web

Ho appena incollato il riepilogo dell'articolo collegato:

Sommario:

  1. Tutti i servizi Web sono API ma tutte le API non sono servizi Web.

  2. I servizi Web potrebbero non eseguire tutte le operazioni eseguite da un'API.

  3. Un servizio Web utilizza solo tre stili di utilizzo: SOAP, REST e XML-RPC per la comunicazione, mentre l'API può utilizzare qualsiasi stile per la comunicazione.

  4. Un servizio Web ha sempre bisogno di una rete per il suo funzionamento mentre un'API non ha bisogno di una rete per il suo funzionamento.

  5. Un'API facilita l'interfacciamento diretto con un'applicazione mentre un servizio Web è un ...

Ulteriori informazioni: differenza tra API e servizio Web | Differenza tra | API vs Web Service http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Vedi il link sopra per la risposta completa.


10
Ma la domanda riguarda la differenza tra WebAPI e WebService, non "API"
Kulbhushan Singh,

Inoltre, il punto 3 non è corretto. È fuorviante e aiuta a creare confusione sull'argomento "SOAP vs. REST".
horcrux,

9

per maggiori dettagli visita questo link Diagramma


2
perché? da questa immagine sembra che i servizi web SOAP non possano essere utilizzati su smartphone ... o nemmeno su desktop? veramente? qualcuno ti sta obbligando a leggere JSON anziché XML su quelle piattaforme?
AndreaCi,

se la lettura di XML non significa che il servizio di base SOAP REST supporta anche Command Separated Value (CSV), JavaScript Object Notation (JSON) e Really Simple Syndication (RSS).
Adiii,

7

Un servizio Web se si desidera è un'API Web. In particolare, l'API Web di solito significa servizio Web RESTful (basato su HTTP) e Servizio Web di solito significa SOAP + WSDL (+ HTTP o SMTP o JMS ..).

I servizi Web tipicamente RESTful si contrappongono ai servizi Web (WSDL, SOAP) ma recentemente è stato introdotto il termine servizi Web RESTful (con 'W' maiuscola) che significa RESTful + WSDL + SOAP ..

Dai un'occhiata a questo grafico per le differenze tra i tre concetti: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Spero che sia d'aiuto!


4

Il servizio Web è assolutamente uguale all'API Web, solo un po 'più limitato in termini di formato dei dati sottostanti. Entrambi utilizzano il protocollo HTTP ed entrambi consentono di creare servizi RESTful. E non dimenticare per altri protocolli come JSON-RPC - forse si adattano meglio.


1
Non "assolutamente lo stesso" se ci sono delle restrizioni adesso lo sono?
Ojonugwa Jude Ochalifu,

0

Nel contesto di ASP.Net un'API Web è un controller la cui classe base è ApiController e non utilizza Views. Un servizio Web è una classe derivata da WebService e ha una generazione WSDL automatica. Per impostazione predefinita è un'API SOAP, ma è anche possibile utilizzare JSON aggiungendo un ScriptServiceAttribute .


0

L'API e il servizio Web servono come mezzo di comunicazione.

L'unica differenza è che un servizio Web facilita l'interazione tra due macchine su una rete. Un'API funge da interfaccia tra due diverse applicazioni in modo che possano comunicare tra loro . Un'API è un metodo mediante il quale i fornitori di terze parti possono scrivere programmi che si interfacciano facilmente con altri programmi. Un servizio Web è progettato per avere un'interfaccia rappresentata in un formato elaborabile dalla macchina, generalmente specificato in WSDL (Web Service Description Language)

Tutti i servizi Web sono API ma non tutte le API sono servizi Web.

Un servizio Web è semplicemente un'API racchiusa in HTTP.


Questo qui articolo fornisce una buona conoscenza per quanto riguarda il servizio web e API.


-2

Bene, TMK potrebbe essere proprio nel mondo Microsoft, ma nel mondo di tutti i software inclusi Java / Python / ecc., Credo che non ci siano differenze. Sono la stessa cosa.


-2

La differenza tra servizio Web e API Web è ben spiegata qui:

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

Testo dal link:

Servizi Web: standard definito da W3C, pertanto è possibile accedervi in ​​modo semi-automatico o automatico (WSDL / UDDI). Il tutto si basa su XML, quindi chiunque può chiamarlo. E ogni aspetto del servizio è molto ben definito. Ci sono standard di descrizione dei parametri, standard di passaggio dei parametri, standard di risposta, standard di scoperta, ecc. Probabilmente potresti scrivere un libro di 2000 pagine che descriverà lo standard. Ci sono anche alcuni standard "aggiuntivi" per fare cose "standard", come l'autenticazione.

Nonostante il fatto che il richiamo e la scoperta automatici stiano funzionando a malapena perché i clienti sono piuttosto poveri e non hai alcuna reale garanzia che qualsiasi servizio possa essere chiamato da qualsiasi client.

L'API Web viene in genere eseguita come HTTP / REST, non viene definito nulla, l'output può essere ad es. JSON / XML, l'input può essere XML / JSON / o dati semplici. Non ci sono standard per nulla => nessuna chiamata e scoperta automatica. Puoi fornire una descrizione in file di testo o PDF, puoi restituire i dati in Windows-1250 invece di unicode, ecc. Per descrivere lo standard sarebbe una brochure di 2 pagine con alcune semplici informazioni e definirai tutto il resto.

Il Web sta passando all'API / REST Web. I servizi Web non sono davvero migliori dell'API Web. Molto complicato da sviluppare e consumano molte più risorse (larghezza di banda e RAM) ... e a causa di tutte le conversioni di dati (RICHIESTA-> XML-> DATI-> RISPOSTA-> XML-> VALIDAZIONE-> CONVERSIONE-> DATI) sono molto lento.

Per esempio. In WebAPI è possibile comprimere i dati, inviarli compressi e decomprimere + decomprimere sul client. In SOAP puoi solo comprimere la richiesta HTML.


-2

Tutti i WebServices sono API ma tutte le API non sono WebServices, l'API esposta sul Web è denominata servizi Web.


Il servizio Web è lo standard definito da W3C, un servizio ben documentato per il software di terze parti per interagire tramite XML (WSDL / UDDI). L'API Web è l'API su HTTP, non ben documentata, ha il suo standard. E l'API in generale è qualcosa che può o non può avere accesso a Internet per parlare con altre applicazioni e può avere anche altri protocolli, ad esempio l'API per le chiamate di sistema per comunicare con il proprio terminale / cmd nel sistema operativo.
Imam Bux,

-3

Due cose sono molto semplici da capire,

  1. API: è un livello dell'applicazione che può servire altre richieste dell'applicazione localmente.
  2. Servizio Web: è un'API che può servire la richiesta e rispondere sulla rete da un sistema remoto sul Web o su Internet.

Nota: tutti i servizi Web sono API ma non tutte le API sono servizi Web


Su localmente come sul web
Pavan T
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.