REST Api SOAP Api: qual è quella giusta per il tuo Business?
Che cosa sono le API
In generale, un API è un blocco di procedure “pronte all’uso“, atte a svolgere una determinata operazione. Questi “mattoni” sono utilizzati dai programmatori per costruire, in minor tempo, delle applicazioni solide, sicure e multifunzionali.
Le API non sono tutte uguali
Premesso che tutti i tipi di API rispondono al requisito fondamentale della sicurezza.
I dati sono un capitale prezioso per cui ogni tipo di comunicazione cloud client-server deve godere di un appropriato livello di sicurezza.
Esistono però diverse tipologie di API con differenze strutturali che è necessario conoscere perché hanno delle implicazioni per le loro applicazioni e il loro utilizzo.
Le caratteristiche delle REST API
Le REST API risultano essere più “leggere” rispetto a quelle SOAP e consentono performance migliori in termini di tempi e velocità in quanto utilizzano il sistema di scambio di informazioni HTTP.
Secondo questo protocollo, le comunicazioni avvengono mediante un iter “domanda-risposta“. Il client (come un browser) esegue una richiesta e il server (il sito web) invia un responso positivo o restituisce un codice di errore. L’intera procedura – definita stateless – è svolta impiegando soltanto le informazioni presenti nella singola domanda, senza alcun tipo di storico.
Gli scambi di dati in HTTP, però, avvengono in chiaro e potrebbero essere facilmente accessibili a terzi. Per questo motivo, le REST API utilizzano i certificati digitali per assicurare un adeguato livello di sicurezza nello scambio di dati.
Cosa sono i certificati digitali e il loro ruolo per le REST API
I certificati digitali sono documenti elettronici che attestano l’identità di un soggetto sul web (persona, sito, software) fornito da un ente terzo a cui è riconosciuta l’autorità di certificazione.
I siti web che presentano dei certificati digitali validi sono favoriti da Google in termini di ranking ed in particolare i certificati di tipo SSL e TLS.
Entrambi sono veri e propri documenti d’identità da impiegare a vantaggio del client : durante il primo tentativo di connessione effettuano la verifica della validità del server con l’aggiunta di un piccolo step al solito iter domanda-risposta. Una volta riconosciuto il certificato, il client rilascia al server una conferma digitale, sancendo l’inizio dello scambio di informazioni.
Questa procedura espande l’affidabilità e la sicurezza delle REST API.
A differenza di quanto accade in chiaro, i dati non sono più esposti ad attacchi esterni ma crittografati in maniera “asimmetrica” ossia utilizzando due chiavi, una pubblica (client) e una privata (server), per cifrare e decifrare un qualsiasi messaggio.
Le caratteristiche delle SOAP API
Le API SOAP sono definite più “pesanti” in quanto presentano dei moduli di sicurezza incorporati di Web Service Security (WSS) che utilizzano sia la crittografia XML, sia l’autenticazione tramite token per proteggere le informazioni.
La crittografia XML cifra solo alcune informazioni e non l’intero documento, segnalando le varie parti attraverso l’uso di tags (marcatori). In questo modo, è possibile utilizzare chiavi multiple per distribuire in maniera differenziata l’accesso alle informazioni.
Tale approccio consente ad un server di decriptare solo ed esclusivamente la parte di dati che gli spetta.
Comprendere il token (dall’inglese “gettone”) è ancora più semplice: esso è una combinazione di informazioni inviate dal server all’utente – ad es. una serie di numeri e lettere – finalizzate al riconoscimento dell’utente stesso in un secondo momento.
L’accesso al server mediante token consente al client di evitare altre forme di autenticazione, quali ad esempio l’inserimento di “nome utente” e “password” oppure si aggiunge a questi.
REST API o SOAP API: le differenze nei sistemi di sicurezza.
In una esemplificazione estrema, i certificati digitali (SSL o TLS) possono essere paragonati a dei lucchetti mentre la WSS rappresenta una pesante porta blindata.
Per queste diverse caratteristiche si conciliano con differenti tipi di applicazione,
Optare per le API SOAP significa, quindi, rinunciare alla semplicità a favore della sicurezza intrinseca e della neutralità di linguaggio (essendo SOAP un protocollo e non un’architettura).
Ciò comporta, però, degli svantaggi come ad esempio una maggiore lentezza di caricamento causata dalla necessità di coprire bande più larghe di rete con una grave penalizzazione dell’esperienza di navigazione.
Questa scelta non è di certo necessaria per tutte le applicazioni possibili delle API.
Quando è consigliabile penalizzare altre caratteristiche delle API per rafforzare la sicurezza?
LA SCELTA DELLE API
Partiamo da un caso concreto e immaginiamo di dover realizzare un API adibita ad un servizio finanziario.
In questo ambito, privacy e sicurezza sono sicuramente aspetti prioritari.
Allo stesso tempo, però, un servizio solido e ben funzionante migliora la user experience aumentando l’interesse e il gradimento del servizio da parte dell’utente.
In questo caso, a primo impatto, realizzare un API con protocollo SOAP sembrerebbe la scelta più giusta, in quanto un semplice “lucchetto” potrebbe non essere all’altezza dei requisiti richiesti.
Nella realtà, non è detto che ci si debba accontentare di un servizio molto sicuro ma poco reattivo, lento e “datato”.
C’è un’altra possibilità: quella di utilizzare certificati digitali multipli. Questo permette di raggiungere dei livelli di sicurezza paragonabili a quelli di SOAP senza dover rinunciare alla leggerezza dell’architettura REST. E ottenere, così, un giusto compromesso tra velocità e privacy.
IN CONCLUSIONE
Per scegliere il tipo di API più adatta non c’è una regola generale ma deve essere effettuata una valutazione caso per caso partendo dal grado di complessità del servizio che si vuole offrire.
Ad esempio, le API distribuite dall’azienda Paypal – la quale si occupa in maniera esclusiva di trasferimenti di denaro in digitale sono di tipo SOAP.
La semplicità del concept ne rende, infatti, possibile l’utilizzo senza gravare sull’usability da parte dell’utente.
Impiegare questo protocollo in ambiti multiservice oppure dove la user experience è l’elemento prioritario risulterebbe una scelta sconsigliabile in quanto estremamente penalizzante per l’utente…
Per questo motivo le API di Youtube utilizzano un’architettura REST: grazie a questa scelta, riescono comunque garantire un elevato grado di sicurezza accompagnato da interfacce semplici e tempi di caricamento minimi.
- Se hai bisogno di un supporto più approfondito e tecnico su quale tipo di API scegliere, affidati a noi di Semplisio.
Il nostro obiettivo è quello di automatizzare i processi aziendali per semplificare e velocizzare il lavoro e offrire di conseguenza risposte più rapide ai clienti.