Che cosa sono le API e perché devi scegliere software che forniscano delle API? Magari ti è capitato di leggere "Integrazione con API di Google, il software si dovrà integrare con le API di PayPal, Integrazione con API di Dropbox, e così via".
Ma cosa sono le API?
API = Application Programming Interface#
L'acronimo API tradotto in italiano sta per Interfaccia di Programmazione dell'Applicazione e in pratica è un modo per far parlare tra loro due software.
Normalmente un software viene utilizzato attraverso un'interfaccia utente, ovvero l'insieme di pulsanti, finestre, menù ed elementi grafici con cui l'utente interagisce quando vuole usare il software.
Chi crea il software può prevedere altri tipi di interfacce per l'uso del software.
Una di queste può essere l'interfaccia di programmazione dell'applicazione. Questa interfaccia non viene usata da un utente umano, ma viene utilizzata da un altro software per automatizzare l'esecuzione di alcune attività al posto dell'utente umano.
Facciamo un esempio. Google Calendar è un'applicazione web che permette di organizzare la propria agenda. Io attraverso la sua Interfaccia utente posso creare un nuovo evento premendo su "nuovo" e inserendo i dati dell'evento: la data, l'ora, la durata, il titolo e così via.
Google Calendar fornisce anche una API, ovvero un'interfaccia di programmazione per comandare le sue funzioni da un altro software. Ad esempio posso fare in modo che quando qualcuno va sul mio sito e compila il modulo per la richiesta di contatto, venga in automatico creato un promemoria per domani, nel mio Google Calendar con i dati dell'utente che ha inserito la richiesta. In questo modo in agenda avrò già il promemoria per ricordarmi di rispondere alla richiesta ricevuta.
Per realizzare in pratica questa integrazione dovrò leggere la documentazione tecnica delle API di Google Calendar e implementare nel mio software il protocollo di comunicazione che è stato previsto da Google Calendar. È richiesto del lavoro di programmazione, ma una volta implementato beneficio del potere dell'automazione.
Vantaggi delle API#
Quali sono i 3 vantaggi delle API.
Automatizzi i processi
Il primo è che con le API puoi automatizzare i processi. Al posto di fare tu a mano il copia incolla di dati da un software all'altro, puoi realizzare delle integrazioni tra software e degli automatismi che lavorino al posto tuo e dei tuoi collaboratori. L'abbiamo appena visto con l'esempio di Google Calendar.
Integri al posto di Reinventare
Il secondo vantaggio te lo spiego con un esempio. Fai finta che nel tuo settore non esista un software gestionale che ti aiuti a svolgere il tuo lavoro.
Ad esempio potresti essere un tecnico che fa la revisione di ascensori. Ogni giorno fai le tue revisioni, compili dei verbali e l'ufficio amministrativo trascrivere i dati di questi verbali nel software gestionale per fare le fatture a fine mese.
Moltiplica questo lavoro per 10-20 tecnici e ti accorgi che potrebbe essere utile compilare il verbale invece che su carta, direttamente dal tablet in un software apposito. Se questo nuovo software dovesse anche gestire la contabilità il suo costo di realizzo sarebbe eccessivo.
Però per tua fortuna il software di contabilità che già utilizzi espone delle API. Allora non ti serve un software che faccia tutto, ma ti basta un software per la parte operativa, quindi far compilare i verbali dal campo, e poi questo software si deve integrare con il software di contabilità.
Non c'è bisogno di re-implementare le funzionalità di un software di contabilità, è molto più facile integrarsi con uno già esistente.
Aggiungi i superpoteri al tuo software
Terzo e forse più importante vantaggio è quello di poter aggiungere dei "superpoteri" al tuo software.
Pensa ad esempio di avere un gestionale di spedizioni e di voler calcolare il preventivo per un trasporto che visiti vari indirizzi. Grazie alle API di Google Maps puoi sviluppare un'integrazione che calcoli la distanza chilometrica effettiva e moltiplichi tale distanza per il costo chilometrico in modo da determinare il costo del trasporto.
Se dovessi fare la stessa cosa senza Google Maps, come minimo dovresti avere un database di tutte le coordinate GPS, di tutte le strade e dovresti mantenerlo aggiornato costantemente. In pratica non potresti.
Tecnologie per realizzare API#
Purtroppo non è detto che il software con il quale vuoi integrarti esponga delle API. Ricorda che dipende sempre dal produttore di quel software la decisione di realizzare un'interfaccia di programmazione applicativa.
Di seguito metto alcune sigle di tecnologie che vengono utilizzate per realizzare le API:
- API SOAP e REST
- Web service (WSDL, XML-RPC, JSON-RPC, JSON-WSP)
Se riconosci una di queste sigle nel materiale informativo di un software di tuo interesse, ci sono buone probabilità che esponga un'API.
Conclusione#
In conclusione ti lascio due riflessioni.
- quando scegli di usare un nuovo software, a pacchetto o servizio, verifica che esponga delle API. Magari adesso non ti servono, ma è meglio lasciare aperta la porta a future integrazioni.
- invece di copiare e incollare i dati da un software ad un altro, prova a vedere se i software che usi espongono già delle API. In caso puoi far sviluppare dei connettori software che automatizzino i processi ripetitivi che adesso fai manualmente.
In Garda Informatica Realizziamo gestionali su misura in tempi rapidi grazie al META-Sviluppo RAPIDO e nel tempo abbiamo sviluppato vari tipi di integrazioni come ad esempio: