API: differenze tra REST e SOAP

Copia URL

REST e SOAP sono due diversi approcci alla trasmissione dei dati online. Nello specifico, entrambi definiscono come creare interfacce di programmazione delle applicazioni (API) che consentono la comunicazione dei dati tra applicazioni web. L'approccio REST (REpresentational State Transfer) è un insieme di principi architettonici, mentre l'approccio SOAP (Simple object access protocol) è un protocollo ufficiale gestito dal W3C (World Wide Web Consortium). La differenza sostanziale risiede nel fatto che SOAP è un protocollo, mentre REST non lo è. Un'API in genere adotta o un approccio o l'altro, a seconda dell'esempio di utilizzo e delle preferenze dello sviluppatore.

REST è un insieme di principi architettonici incentrati sulle esigenze di ottimizzazione di servizi web e applicazioni mobili. Trattandosi sostanzialmente di linee guida o raccomandazioni, la loro implementazione è lasciata agli sviluppatori.

In genere, una richiesta di dati inviata a un'API REST avviene tramite il protocollo HTTP. Una volta ricevuta la richiesta, le API progettate per REST (chiamate API o servizi web RESTful) possono restituire i messaggi in numerosi formati: HTML, XML, testo semplice e JSON. JSON (JavaScript Object Notation) è il formato di messaggistica più adottato, perché, a dispetto del nome, può essere letto da qualsiasi linguaggio di programmazione, dagli utenti e dalle macchine, ed è ottimizzato. In questo modo le API RESTful sono più flessibili e configurabili con facilità.

Un'applicazione viene definita RESTful se rispetta sei principi architetturali, disponendo di:

  1. Un'architettura client server costituita da client, server e risorse.
  2. Una comunicazione client server stateless, in cui nessun contenuto client viene archiviato sul server tra le richieste. Le informazioni relative allo stato della sessione si trovano inoltre sul client.
  3. Caching dei dati, per eliminare la necessità di alcune interazioni client server.
  4. Un'interfaccia uniforme per i componenti, in modo che le informazioni vengano trasferite in una forma standard e non specifica alle esigenze di un'applicazione. Roy Fielding, creatore di REST, la definisce come "la caratteristica di base che distingue lo stile architettonico REST da altri stili basati sulla rete".
  5. Un sistema di vincoli a più livelli, in cui le interazioni client server possono essere mediate da livelli gerarchici.
  6. Codice on demand, per consentire ai server di estendere la funzionalità di un client trasferendo il codice eseguibile. Poiché ciò riduce anche la visibilità, questa raccomandazione è facoltativa.

Risorse da Red Hat

SOAP è un protocollo standard ideato inizialmente per consentire la comunicazione tra applicazioni realizzate con linguaggi e piattaforme diverse. Trattandosi di un protocollo, richiede l'integrazione di regole che ne aumentano la complessità e il carico di gestione sul sistema, comportando tempi di caricamento delle pagine più lunghi. Oltre alle regole, integra anche standard di conformità che lo rendono idoneo agli ambienti enterprise. Gli standard di conformità integrati includono sicurezza, atomicità, coerenza, isolamento e durata (ACID), un insieme di proprietà che garantiscono transazioni di database affidabili.

Le specifiche più comuni dei servizi web includono:

  • Web Services Security (WS-security): uniforma le modalità di protezione e trasferimento dei messaggi tramite identificatori univoci chiamati token.
  • WS-ReliableMessaging: standardizza la gestione degli errori tra messaggi trasferiti tra infrastrutture IT non affidabili.
  • WS-addressing: crea pacchetti di informazioni di routing in forma di metadati all'interno delle intestazioni SOAP, anziché gestire tali informazioni a un livello di maggiore granularità nella rete.
  • Web Services Description Language (WSDL): descrive il comportamento di un servizio web, dove inizia e dove termina.

Una richiesta di dati inviata a un'API SOAP può essere gestita tramite uno dei protocolli a livello applicativo: HTTP (per i browser web), SMTP (per l'email), TCP e altri. Una volta ricevuta la richiesta, i messaggi SOAP di ritorno devono essere restituiti come documenti in formato XML, un linguaggio di markup facilmente leggibile da utenti e macchine. Una richiesta completata a un'API SOAP non viene memorizzata nella cache del browser, e pertanto non sarà possibile accedervi successivamente senza rinviarla all'API.

Molti sistemi esistenti aderiscono ancora a SOAP, mentre REST, il cui avvento è successivo, è spesso considerato come un'alternativa più rapida negli scenari web. REST è un insieme di linee guida con un'implementazione flessibile, mentre SOAP è un protocollo con requisiti specifici, come la messaggistica XML.

Poiché sono ottimizzate, le API REST sono adatte ai contesti più innovativi come l'Internet of Things (IoT), lo sviluppo di applicazioni mobili e il serverless computing. Grazie all'integrazione della sicurezza e della conformità delle transazioni, i servizi web SOAP rispondono a molte esigenze aziendali, ma risultano anche più complessi. Infine, molte API pubbliche, come l'API di Google Maps, seguono i principi REST.

Red Hat offre soluzioni API complete, ottimizzate e modulari, che sono basate sull'open source, sugli standard open e adatte a un'infrastruttura on premise o nel cloud. Possono esserti di grande aiuto nel rendere i tuoi processi IT più flessibili ed efficienti.

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Cos'è l'integrazione delle applicazioni?

L'integrazione delle applicazioni serve a connettere sistemi e applicazioni diversi, che attraverso lo scambio di dati e l'utilizzo di servizi condivisi sono in grado di comunicare e funzionare compatibilmente.

Container: Cosa sono le API in informatica?

API è l'acronimo di Application Programming Interface (interfaccia di programmazione delle applicazioni). Le web API consentono la comunicazione tra diverse applicazioni web.

Che cos'è un'API REST?

Un'API REST (nota anche come API RESTful) è un'interfaccia di programmazione delle applicazioni conforme ai vincoli dello stile architetturale REST. REST è l'acronimo di REpresentational State Transfer.

Integrazione: risorse consigliate