API: cosa sono, perché usarle e come garantirne la qualità.

By agosto 2, 2017Tecnologie

Il 2016 si è chiuso per l’Apple App Store con un fatturato di 34 miliardi di dollari, il doppio rispetto a quello generato dal concorente Google Play Store.
All’interno di un mercato digitale così variegato e caratterizzato da una competizione sempre più agguerrita tra le molte app disponibili sugli app store per ogni categoria, è sempre più difficile per una società sviluppare un’applicazione che possa portare fatturato e un reale valore aggiunto all’utente finale.

I due principali ostacoli che deve affrontare un’azienda che vuole proporsi all’interno del panorama digitale delle app sono: la necessità di manutenzione connessa alle evoluzioni dei sistemi operativi mobile a cui vanno incontro le applicazioni e una finalità di utilizzo non ben percepita.

Per far fronte a questi potenziali ostacoli occorre sviluppare una strategia digitale ben chiara e offrire agli utenti finali (che siano partner, impiegati o clienti) un prodotto personalizzato e sempre aggiornato accedendo ai dati a disposizione presenti nei sistemi dell’azienda.

Come faccio a collegare le applicazioni con i miei database?

Per far sì che le applicazioni possano essere aggiornate in tempo reale con dati provenienti dai sistemi legacy o di terze parti, occorre procedere con un’integrazione degli stessi mediante l’utilizzo di API o “application programming interface” ovvero un’interfaccia di programmazione che permette di espandere la funzionalità di un programma o di una mobile App.

Esistono varie tipologie di web service (REST, SOAP etc.) ma tutti rispondono all’obiettivo comune di passare dei dati da un back-end a, ad esempio, un’applicazione mobile garantendo:

  1. Sicurezza
  2. Un prodotto personalizzato e sempre aggiornato

La sicurezza in particolar modo è un aspetto cruciale per tutte le aziende che trattano grandi moli di dati. Attraverso l’integrazione con le API, i dati passano dai web service del cliente (o di terze parti) all’applicazione senza però essere salvati in essa.

Inoltre, ad esempio, integrando l’applicazione con i back-end del cliente (CMS, CRM ed ERP), è possibile che l’utente finale veda solo le informazioni di suo interesse, come per esempio notizie verticali sui prodotti da lui acquistati o transazioni e documenti sempre aggiornati.

L’integrazione anche di una API con un back-end può richiedere un dispendio di tempo considerevole in quanto sarà necessario ricercare l’end-point del servizio, costruire un prototipo di integrazione da estendere progressivamente fino al completo coverage funzionale.

La gestione manuale di un’integrazione tra API e back-end è dunque sconsigliata ed è preferibile utilizzare un generatore automatico del client.

Anche utilizzando dei generatori automatici è possibile però che sorgano dei problemi inattesi e le principali cause solitamente sono:

  • Cattivo sviluppo delle API
  • Scarsa documentazione a supporto

Per evitare di avere problemi relativi alla qualità delle API occorre investire nella progettazione delle interfacce e nella realizzazione di piani di test (manuali e automatizzati).

I test consentono di tenere sotto controllo le modifiche a posteriori e di controllare le possibili combinazioni dei valori assegnati ai parametri in transito (sia quelli in ingresso all’interfaccia che quelli che vengono restituiti da essa) e l’ordine delle chiamate alle interfacce applicative che deve necessariamente rispettare un ordine di dipendenza.

Per controllare i parametri all’ingresso dell’interfaccia e in transito bisogna controllare che l’API si comporti correttamente anche quando i parametri che vengono passati non sono corretti. Per verificare i parametri che vengono restituiti dalle API invece si deve procedere con CI test.

A tale scopo si possono trovare vari tool online come PostMan, SOAPUI, o Jmeter per simulare il carico degli utenti, Rest-Assured, Vrest etc. che possono automatizzare il processo di testing sulle API.

Una buona documentazione unita a un sistema automatizzato di testing renderà l’integrazione più semplice e veloce.

Contattaci per avere maggiori informazioni sull’architettura aperta della piattaforma e scopri come può integrarsi con i tuoi sistemi aziendali.