it-swarm.it

Differenza tra API Web e servizio Web?

Ho sentito molto parlare dei servizi Web e delle API Web, c'è qualche differenza tra loro o sono uguali?

86
Harish Kurup

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.

89
Slawek

Un servizio Web consente comunicazioni machine-to-machine su HTTP. Un'API Web è un sottoinsieme di servizi Web che utilizzano REST (Riassumendo il articolo di Wikipedia ). I concetti si sovrappongono sicuramente. Credo che ci sia ancora un collegamento in la maggior parte delle persone pensano al servizio web -> SOAP/XML-RPC che può confondere inutilmente le cose.

Alla fine, dovrai fare alcune domande per chiarire cosa significano le persone. Non tutti fanno una distinzione o usano i termini in modo intercambiabile.

20
Berin Loritsch

I servizi Web sono un'architettura definita e un approccio a un dominio problematico come indicato da W3C .

I servizi Web forniscono un mezzo standard per interagire tra diverse applicazioni software, in esecuzione su una varietà di piattaforme e/o framework

L'API Web è un concetto e estrae i mezzi su come viene implementato il concetto.

In parole povere ... l'API web è al motore mentre WS sta al BMW N5 .

6
Aaron McIver