In questo articolo parliamo brevemente delle diverse API, del loro funzionamento e di come le REST-API siano state implementate in Smeup per semplificare la sua interazione con sistemi o programmi esterni.

Cosa sono le API?

Le API (Application Programming Interface) sono un insieme di definizioni e protocolli con cui vengono creati ed integrati i software applicativi. Se si desidera integrarsi con un sistema software per recuperare informazioni o eseguire una funzione in maniera sincrona, un’API facilita la comunicazione affinché la richiesta sia compresa e soddisfatta.

Esistono diverse forme di API, tra cui le 4 principali: RPC, SOAP, REST e GraphQL. Più nel dettaglio:

  • RPC (Remote Procedure Call), è la prima e più semplice forma di API. In questo sistema il client ed il server comunicano tramite chiamate che vengono prima convertite e poi eseguite o ricevute.

  • SOAP (Simple Object Access Protocol). In questa forma di API è possibile inserire una sezione header, che precede il messaggio e può contenere varie specifiche relative all’applicazione o requisiti (token) da soddisfare per potere poi processare il messaggio.

  • REST (Representational State Transfer), diverso dai suoi predecessori. Per alleggerirsi REST mantiene i comandi al minimo usando metodi HTTP: get, put, post, delete. Invece di avere una struttura rigida, questa forma di API utilizza dei vincoli che possono essere ignorati in base alle necessità logiche dell’applicazione.

  • GraphQL nata dalla necessità di rendere più snella la comunicazione. GraphQL fornisce una risposta singola e precisa attraverso un’unica richiesta. Questo è possibile grazie ad uno schema che permette al client di sapere come i dati sono distribuiti sul server.

Ognuna di queste tipologie di API ha caratteristiche e punti di forza, che la rende più adatta a certi compiti piuttosto che ad altri.

REST-API in Smeup

Smeup, attraverso le sue REST-API, ha la possibilità di esporre servizi o funzioni sui propri oggetti applicativi, tramite l’utilizzo del protocollo HTTP. In questo modo facilita l’eventuale integrazione con il sistema anche da parte di software esterni, che possono quindi scambiare dati con Smeup. Tramite questo scambio di dati e informazioni è quindi possibile fornire o richiedere servizi. La particolarità di questo tipo di comunicazione con Smeup è che avviene sfruttando la potenza delle fun, senza però la necessità di capirne a pieno la sintassi.

Come ben sappiamo, nella nostra struttura ogni fun permette di eseguire un comando riferito ad un oggetto di Smeup (clienti, articoli, etc). Tuttavia, la sintassi di queste è molto complessa ed i nomi dei campi delle entità sono dei codici alfanumerici difficili da comprendere e ricordare. È stata quindi creata la possibilità di creare un elenco di abbinamenti tra codici e fun. L’utente, anziché richiamare direttamente la fun, chiama questo servizio inserendo semplicemente un codice, seguito dai parametri previsti dalla fun nascosta dietro questo codice. Il programma recupera la fun corrispondente al codice, la esegue e restituisce il risultato, come potete vedere nello schema sottostante.

immagine illustrativa del processo tramite cui SmeUP associa ad ogni funzione un codice più memorizzabile


L’altro aspetto che caratterizza le REST-API riguarda la possibilità di esporre solo determinate fun e non tutte quelle esistenti in Smeup. Per questioni di sicurezza è infatti possibile eseguire un’associazione codice-fun mirata soltanto a quelle che si desidera rendere accessibili esternamente. Tutte le fun escluse da questo processo rimarranno accessibili solo internamente al sistema.


Per ulteriori informazioni, più tecniche, sulle REST-API all’interno di Smeup vi rimandiamo ad un altro articolo sul nostro blog: https://blog.smeup.com/restapi/.