Definizione delle differenze tra SOAP, OData, REST e API

Completato

Il protocollo SOAP (Simple Object Access Protocol) è un protocollo di messaggistica basato su XML. Consente a diversi processi (remoti) di comunicare. SOAP utilizza HTTP, SMTP o FTP per la negoziazione e la trasmissione di messaggi. L'uso del protocollo SOAP non è agevole.

Il tipo di modello di messaggistica più comune in SOAP è RPC (Remote Procedure Call), dove un nodo di rete (il client) invia un messaggio di richiesta a un altro nodo (il server) e il server invia un messaggio di risposta al client. RPC utilizza la busta SOAP, che definisce la struttura del messaggio e il modo in cui elaborarlo.

Per usare SOAP, il client che si connette al server Business Central deve essere in grado di comprendere i messaggi SOAP. In .NET Framework, i servizi SOAP sono supportati a partire dalla versione 3.0 di Windows Communication Framework (WCF).

Un servizio SOAP espone un file WSDL (Web Services Description Language) che descrive come può essere chiamato il servizio, quali parametri prevede e quale struttura di dati restituisce. Questo file è un documento basato su XML ed è stato creato per essere letto da macchine e non da esseri umani.

Business Central supporta anche Open Data Protocol (OData), un protocollo aperto progettato per usare API RESTful ed eseguire query sulle stesse. Un'API è un insieme di routine e protocolli che consentono a diversi componenti software di comunicare. Le API sono state usate per molti anni e quasi tutti i software avevano un'API che consentiva ad altri programmi di usare alcune funzionalità del software. La libreria Win32, ad esempio, è una nota API di Windows usata per eseguire applicazioni precedenti su versioni più recenti di Windows.

Attualmente, le API sono usate soprattutto nelle applicazioni Web. Ogni grande applicazione Web come Facebook, LinkedIn, Microsoft Graph e così via, offre la possibilità di connettersi mediante le API per migliorare l'esperienza dell'applicazione Web o per usare i dati forniti dall'applicazione Web. Se queste API seguono l'architettura REST sono denominate API RESTful. REST è un'architettura per servizi Web che possono funzionare a livello di Internet, nel senso che possono gestire molte connessioni e richieste da tutto il Web. Questi servizi sono senza stato, il che significa che è possibile richiedere alcuni dati dal server e che il server risponde ma non mantiene uno stato interno o una sessione sulla richiesta. Il server chiude la connessione dopo la risposta.

Questi trasferimenti possono avvenire solo su HTTP(S) e REST supporta JSON e XML. Tuttavia, JSON è il formato più usato in combinazione con i servizi REST.

Il vantaggio significativo di REST è il modo in cui è possibile chiamare i servizi REST. Per effettuare tali chiamate, si può usare un URL che utilizza verbi HTTP standard come GET, POST, PUT e DELETE. Ogni linguaggio di programmazione in grado di inviare richieste HTTP può funzionare con i servizi REST, consentendo prestazioni e scalabilità molto più elevate rispetto a SOAP. Inoltre, poiché si tratta di una richiesta HTTP, i browser o il server possono memorizzare le risposte nella cache.

OData è basato sui servizi REST e può essere usato per eseguire query sui servizi REST. Ad esempio, fornendo parametri di query supplementari a un URL, è possibile limitare o filtrare il set di risultati. OData è semplice da usare per le operazioni CRUD. Laddove SOAP espone un documento WSDL, OData espone un documento EDMX, che contiene i metadati di tutti i servizi Web pubblicati.

OData usa formati diversi per rappresentare i dati e il modello di dati. Il formato JSON è lo standard, ma il formato Atom è disponibile anche con OData. Anche Atom è un formato basato su XML usato per i feed Web (come newsfeed). Il documento EDMX viene creato come documento XML, quindi OData usa una combinazione di differenti formati di file.