Un'API (Application Programming Interface) è un insieme di regole che consente a un software di comunicare con un altro. Pensala come un menu: la tua app può "ordinare" dati o azioni e l'API comunica alla cucina (un servizio) esattamente cosa cucinare e come servirlo.
Le API standardizzano il modo in cui vengono effettuate le richieste e restituite le risposte, consentendo a sistemi diversi di funzionare insieme in modo affidabile anche se sono stati realizzati da team o aziende diverse o in linguaggi di programmazione diversi.
A livello pratico, un'API definisce gli endpoint (indirizzi che è possibile chiamare), i metodi che è possibile utilizzare (come GET per recuperare dati o POST per inviare dati), il formato di ciò che si invia (spesso JSON) e ciò che ci si deve aspettare in risposta (dati più un codice di stato come 200 per "OK" o 404 per "Non trovato"). Questa prevedibilità è il punto fondamentale.
Per essere precisi, è possibile utilizzare un'API senza un SDK, ma l'uso di un SDK consente di risparmiare tempo e ridurre gli errori.
Sì, diversi stili, ciascuno con i propri compromessi:
Di solito sì. Invece di costruire tutto da zero, le API consentono di integrare pagamenti, mappe, e-mail, ricerca, analisi, intelligenza artificiale e altro ancora. Ciò consente di risparmiare tempo di progettazione, migliora l'affidabilità (il fornitore mantiene aggiornato il proprio servizio) e permette al vostro team di concentrarsi su ciò che rende unico il vostro prodotto.
I compromessi: erediti i limiti di velocità, i prezzi e le dipendenze dall'uptime dal tuo provider. Se il tuo prodotto non può funzionare senza quell'API, pianifica una ridondanza.
Spesso. Molte API richiedono l'autenticazione affinché il provider sappia chi sei e possa applicare autorizzazioni e limiti di velocità. Gli approcci più comuni includono:
Quando possibile, non conservare chiavi e token nei repository pubblici e nel codice lato client.
Non proprio. Un browser web, curl o qualsiasi client HTTP funzionano per molte API. Gli sviluppatori utilizzano spesso strumenti come Postman o librerie linguistiche integrate per effettuare richieste, controllare le risposte e salvare esempi. Per le app di produzione, utilizzerai la libreria HTTP del tuo linguaggio o l'SDK del provider.
Praticamente tutto ciò che è moderno: app mobili che recuperano profili, "Accedi con Google/Apple", negozi online che elaborano pagamenti, dispositivi domestici intelligenti che si sincronizzano, dashboard che recuperano analisi, persino il widget meteo. Se un software scambia dati, è probabile che dietro ci sia un'API.