Qual è la differenza tra un servizio web e un'API? La differenza è maggiore del protocollo utilizzato per trasferire i dati? Grazie.
Qual è la differenza tra un servizio web e un'API? La differenza è maggiore del protocollo utilizzato per trasferire i dati? Grazie.
Risposte:
Un'API (Application Programming Interface) è il mezzo con cui terze parti possono scrivere codice che si interfaccia con altri codici. Un servizio Web è un tipo di API, che funziona quasi sempre su HTTP (anche se alcuni, come SOAP, possono utilizzare trasporti alternativi, come SMTP). La definizione ufficiale di W3C menziona che i servizi Web non usano necessariamente HTTP, ma questo è quasi sempre il caso e di solito si presume se non diversamente indicato.
Per esempi specifici di servizi Web, vedere SOAP , REST e XML-RPC . Per un esempio di un altro tipo di API, uno scritto in C per l'uso su un computer locale, consultare l' API del kernel Linux .
Per quanto riguarda il protocollo, un'API di servizi Web utilizza quasi sempre HTTP (quindi la web part) e implica sicuramente la comunicazione su una rete. Le API in generale possono utilizzare qualsiasi mezzo di comunicazione che desiderano. L'API del kernel Linux, ad esempio, utilizza Interrupts per invocare le chiamate di sistema che comprendono la sua API per le chiamate dallo spazio utente.
Fondamentalmente, un servizio web è un metodo di comunicazione tra due macchine mentre un'API è un livello esposto che consente di programmare qualcosa.
Potresti benissimo avere un'API e il metodo principale per interagire con quell'API è tramite un servizio web.
Le definizioni tecniche (per gentile concessione di Wikipedia) sono:
Un'interfaccia di programmazione dell'applicazione (API) è un insieme di routine, strutture di dati, classi di oggetti e / o protocolli forniti da librerie e / o servizi del sistema operativo al fine di supportare la creazione di applicazioni.
Un servizio Web (anche Web Service) è definito dal W3C come "un sistema software progettato per supportare l'interazione interoperabile macchina-macchina su una rete"
In senso generico, un servizio web è un'API su HTTP. Spesso utilizzano JSON o XML, ma ci sono anche altri approcci.
Le API sono un'interfaccia pubblicata che definisce il modo in cui il componente A comunica con il componente B.
Ad esempio, DoubleClick ha un'API Java pubblicata che consente agli utenti di interrogare le tabelle del database per ottenere informazioni sulla propria campagna pubblicitaria online.
ad es. chiama GetNumberClicks (nome utente)
Per implementare l'API, devi aggiungere il file .jar di DoubleClick al percorso della tua classe. La chiamata è locale.
Un servizio Web è una forma di API in cui l'interfaccia è definita mediante un WSDL. Ciò consente la chiamata remota di un'interfaccia su HTTP.
Se Doubleclick implementasse la propria interfaccia come servizio Web, utilizzerebbe qualcosa come Axis2 in esecuzione all'interno di Tomcat.
L'utente remoto chiamerebbe il servizio web
ad es. chiamare GetNumberClicksWebService (nome utente)
e il servizio GetNumberClicksWebService chiamerebbe GetNumberClicks localmente.
API (Application Programming Interface), il modulo completo stesso suggerisce che si tratta di un'interfaccia che consente di programmare per l'applicazione con l'aiuto o il supporto di qualche altra interfaccia dell'applicazione che espone una sorta di funzionalità che è utile per l'applicazione.
Ad esempio, mostrare i tassi di cambio aggiornati sul tuo sito Web richiederebbe un'interfaccia di terze parti per la programmazione, a meno che tu non preveda di avere il tuo database con tassi di cambio e aggiornamenti regolari allo stesso. Questo set di funzionalità è quando è già disponibile con qualcun altro e quando vogliono condividerlo con gli altri devono avere un endpoint per comunicare con gli altri che sono interessati a tali interazioni in modo da implementarlo sul web tramite web- Servizi. Questo end point non è altro che un'interfaccia della loro applicazione che è possibile programmare da qui API.
Pensa al servizio Web come api web. L'API è un termine così generale ora, quindi un servizio Web è un'interfaccia per funzionalità, generalmente correlata al business, che puoi accedere alla rete tramite una varietà di protocolli.
Controllare questo http://en.wikipedia.org/wiki/Web_service
Come indicato nel link, l'API Web è uno sviluppo nei servizi Web che molto probabilmente si riferisce al Web 2.0, mentre i servizi basati su SOAP sono sostituiti da comunicazioni basate su REST. Si noti che i servizi REST non richiedono definizioni di API di servizio XML, SOAP o WSDL, quindi questo è molto diverso dal servizio Web tradizionale.
un altro esempio: google map api vs google direction api web service, mentre il primo serve (consegna) file javascript al sito (che può quindi essere utilizzato come api per creare nuove funzioni), il successivo è un servizio web Rest che fornisce dati ( in formato json o xml), che può essere elaborato (ma non utilizzato in senso API).