Differenza tra API Web e servizio Web?


Risposte:


86

Servizi Web: standard definito da W3C, quindi è 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.


1
grazie @Slawek, l'hai spiegato meglio..e grazie anche per l'esempio ...
Harish Kurup

2
In realtà sento che le persone si riferiscono sia a SOAP che a REST come "servizi web". L'API Web tende tuttavia a essere REST.
Ben Thurley,

@Slawek, il modo in cui l'hai detto 2000 pagine contro un paio di pagine, spiega da solo la complessità ridotta. Un buon modo per dirlo semplicemente ...
Jaqen H'ghar,

20

Un servizio Web consente comunicazioni machine-to-machine su HTTP. Un'API Web è un sottoinsieme di servizi Web che utilizzano convenzioni REST (riepilogando l' articolo di Wikipedia ). I concetti sicuramente si sovrappongono. Credo che ci sia ancora un collegamento nella mente del servizio web di molte persone -> 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.


Grazie @Berin Loritsch, sì, è vero che provoca confusione tra API e WS ..
Harish Kurup

6

I servizi Web sono un'architettura definita e un approccio a un dominio problematico, come affermato dal 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 alla BMW N53 .

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.