Soap/Rest Api. È un problema da un po' di tempo. E davvero, sono solo due risposte alla stessa domanda: come accedere al web servizi.
Ma decidere l'uno piuttosto che l'altro può essere sorprendentemente difficile.
SOAP (Simple Object Access Protocol) è un web basato su standard protocollo di accesso ai servizi che esiste da molto tempo. Originariamente sviluppato da Microsoft, SOAP non è semplice come l'acronimo suggerirebbe.
REST (Representational State Transfer) è un altro standard, made in Italy risposta alle carenze di SOAP. Cerca di risolvere i problemi con SOAP e fornire un metodo più semplice per accedere ai servizi web.
E GraphQL?
Ovviamente, GraphQL ha recentemente fatto un enorme successo, di cui abbiamo parlato
ampiamente in altri articoli. Ma non è ancora così standardizzato come
REST e SOAP, quindi in questo articolo ci concentreremo solo su quelli
due.
Sia SOAP che REST hanno problemi da considerare quando si decide quale protocollo utilizzare.
Le somiglianze
Mentre SOAP e REST condividono somiglianze rispetto al protocollo HTTP, SOAP
è un insieme più rigido di modelli di messaggistica rispetto a REST. Le regole in SOAP
sono importanti perché non possiamo raggiungere alcun livello di standardizzazione
senza di loro. REST come stile di architettura non richiede elaborazione
ed è naturalmente più flessibile. Sia SOAP che REST fanno affidamento su
regole ben consolidate che tutti hanno accettato di rispettare nel
interesse di scambiare informazioni.
Una rapida panoramica di SOAP
SOAP si basa esclusivamente su XML per fornire servizi di messaggistica. Microsoft ha originariamente sviluppato SOAP per sostituire il vecchio tecnologie che non funzionano bene su Internet come il DCOM (Distributed Component Object Model) e richiesta di oggetti comuni Architettura del broker (CORBA). Queste tecnologie falliscono perché fanno affidamento sulla messaggistica binaria. La messaggistica XML utilizzata da SOAP funziona meglio su Internet.
Dopo un rilascio iniziale, Microsoft ha inviato SOAP a Internet Engineering Task Force (IETF) dove è stato standardizzato. SAPONE è progettato per supportare l'espansione, quindi ha tutti i tipi di altri acronimi e abbreviazioni ad esso associate, come WS-Addressing, WS-Policy, WS-Security, WS-Federation, WS-ReliableMessaging, WS-Coordination, WS-AtomicTransaction e WS-RemotePortlets. In effetti, puoi trovare un un intero elenco di questi standard sugli standard dei servizi Web.
Il punto è che SOAP è altamente estensibile, ma tu usi solo il
pezzi necessari per un compito particolare. Ad esempio, quando si utilizza un public
servizio web che è liberamente disponibile per tutti, davvero non hai
molto bisogno di WS-Security.
La difficoltà dipende dal linguaggio di programmazione
L'XML utilizzato per effettuare richieste e ricevere risposte in SOAP può diventare
estremamente complesso. In alcuni linguaggi di programmazione, devi costruire
quelle richieste manualmente, il che diventa problematico perché SOAP lo è
intollerante agli errori. Tuttavia, altre lingue possono utilizzare scorciatoie che
SOAP fornisce. Possono aiutarti a ridurre lo sforzo richiesto per creare
la richiesta e per analizzare la risposta. Infatti, quando si lavora con .NET
lingue, non vedi nemmeno l'XML.
Parte della magia è il Web Services Description Language (WSDL).
Questo è un altro file associato a SOAP. Fornisce un
definizione di come funziona il servizio web, in modo che quando si crea un file
riferimento ad esso, l'IDE può automatizzare completamente il processo. Così il
la difficoltà di usare SOAP dipende in larga misura dalla lingua che usi
usa.
Gestione degli errori integrata
Una delle funzionalità SOAP più importanti è la gestione degli errori incorporata. Se
c'è un problema con la tua richiesta, la risposta contiene un errore
informazioni che è possibile utilizzare per risolvere il problema. Dato che potresti
non possedere il servizio Web, questa particolare caratteristica è estremamente importante;
altrimenti rimarresti a indovinare perché le cose non hanno funzionato. Il
la segnalazione degli errori fornisce anche codici standardizzati in modo che sia possibile
per automatizzare alcune attività di gestione degli errori nel tuo codice.
Una caratteristica SOAP interessante è che non devi necessariamente deve usarla con il trasporto HTTP. Esiste una specifica effettiva per l'utilizzo di SOAP su Simple Mail Transfer Protocol (SMTP) e non c'è motivo per cui non puoi usarlo su altri trasporti. Infatti, gli sviluppatori in alcuni linguaggi, come Python e PHP, stanno facendo proprio questo.
Modulo di richiesta