Cos'è un'API?
Le API sono meccanismi che consentono a due componenti software di comunicare tra loro usando una serie di definizioni e protocolli. Ad esempio, il sistema software dell'ufficio meteorologico contiene dati meteorologici giornalieri. L'app del meteo sul tuo cellulare "parla" con questo sistema tramite API e ti mostra gli aggiornamenti meteorologici quotidiani sul telefono.
Cosa significa API?
API è la sigla di "Application Programming Interface". Nel contesto delle API, la parola "applicazione" si riferisce a qualsiasi software con una funzione distinta. Si può pensare all'interfaccia come a un contratto di servizio tra due applicazioni. Questo contratto definisce come queste due parti comunicano tra loro usando richieste e risposte. La rispettiva documentazione dell'API contiene informazioni su come gli sviluppatori devono strutturare tali richieste e risposte.
Come funzionano le API?
L'architettura API in genere viene spiegata in termini di client e server. L'applicazione che invia la richiesta si chiama client e l'applicazione che invia la risposta si chiama server. Quindi, nell'esempio del meteo, il database meteorologico dell'ufficio è il server e l'applicazione per dispositivi mobili è il client.
Le API possono funzionare in quattro modi diversi a seconda di quando e perché vengono create.
API SOAP
Queste API usano il protocollo SOAP (Simple Object Access Protocol). Client e server si scambiano messaggi tramite XML. Questo è un tipo di API meno flessibile, che in passato era più diffuso.
API RPC
Queste API sono denominate chiamate di procedura remote (Remote Procedure Calls). Il client completa una funzione (o procedura) sul server e il server invia l'output al client.
API WebSocket
L'API WebSocket è un altro sviluppo dell'API Web moderna che usa oggetti JSON per trasferire i dati. Un'API WebSocket supporta la comunicazione a due vie tra le app client e il server. Il server può inviare messaggi di callback ai client connessi, migliorando l'efficienza rispetto all'API REST.
API REST
Queste sono le API più diffuse e flessibili sul Web ad oggi. Il client invia le richieste al server come dati. Il server usa questo input del client per avviare funzioni interne e restituisce i dati di output al client. Di seguito sono illustrate le API REST più nel dettaglio.
Cosa sono le API REST?
REST sta per "Representational State Transfer". REST definisce una serie di funzioni come GET, PUT, DELETE ecc. che i client possono usare per accedere ai dati del server. Client e server scambiano dati tramite HTTP.
La caratteristica principale della REST API è l'assenza di stato. Per assenza di stato si intende che i server non salvano i dati del client tra le richieste. Le richieste del client al server sono simili agli URL che digiti nel browser per visitare un sito Web. La risposta dal server sono i dati semplici, senza il rendering grafico tipico di una pagina Web.
Cos'è l'API Web?
Un'API Web o API del servizio Web è un'interfaccia di elaborazione dell'applicazione tra un server Web e un browser Web. Tutti i servizi Web sono API, ma non tutte le API sono servizi Web. L'API REST è un tipo speciale di API Web che usa lo stile architetturale standard spiegato sopra.
I diversi termini relativi alle API, come API Java o API di servizio, esistono perché storicamente le API sono state create prima del World Wide Web. Le API Web moderne sono API REST e i termini possono essere usati in modo intercambiabile.
Cosa sono le integrazioni API?
Le integrazioni API sono componenti software che aggiornano automaticamente i dati tra client e server. Alcuni esempi di integrazioni API sono quando esegui la sincronizzazione dati automatica sul cloud dalla galleria immagini del tuo telefono, oppure quando la data e l'ora si sincronizzano automaticamente sul tuo laptop quando viaggi in un altro fuso orario. Le aziende possono anche usarle per automatizzare in modo efficiente molte funzioni di sistema.
Quali sono i vantaggi delle API REST?
Le API REST offrono quattro vantaggi principali:
1. Integrazione
Le API vengono utilizzate per integrare nuove applicazioni con sistemi software esistenti. Ciò aumenta la velocità di sviluppo perché ciascuna funzionalità non deve essere scritta da zero. Puoi usare le API per sfruttare un codice esistente.
2. Innovazione
Con l'arrivo di una nuova app possono cambiare interi settori. Le aziende devono rispondere rapidamente e supportare l'implementazione rapida di servizi innovativi. Possono farlo apportando modifiche a livello di API senza dover riscrivere l'intero codice.
3. Espansione
Le API rappresentano un'opportunità unica per le aziende di rispondere alle esigenze dei clienti attraverso diverse piattaforme. Ad esempio, l'API delle mappe consente l'integrazione delle informazioni sulla mappa tramite siti Web, Android, iOS ecc. Qualsiasi azienda può fornire un tale accesso ai propri database interni usando API gratuite o a pagamento.
4. Facilità di manutenzione
L'API funge da gateway tra due sistemi. Ciascun sistema è obbligato ad apportare modifiche interne in modo che le API non subiscano alcuna influenza. In questo modo, qualsiasi modifica futura al codice da una parte non avrà influenze sull'altra parte.
In che cosa si differenziano i vari tipi di API?
Le API vengono classificate in base alla loro architettura e all'ambito d'uso. Abbiamo già esaminato i principali tipi di architetture API, quindi diamo un'occhiata all'ambito d'uso.
API private
Queste sono interne a un'azienda e vengono usate solo per connettere sistemi e dati all'interno dell'azienda.
API pubbliche
Queste sono disponibili per il pubblico e possono essere usate da chiunque. Possono esserci o meno alcune autorizzazioni e costi associati con questi tipi di API.
API dei partner
Queste sono accessibili solo agli sviluppatori esterni autorizzati per agevolare la collaborazione tra aziende.
API composite
Queste combinano due o più API diverse per rispondere a requisiti o comportamenti di sistema complessi.
Cos'è un endpoint API e perché è importante?
Gli endpoint API sono i punti di contatto finali nel sistema di comunicazione dell'API. Questi includono URL del server, servizi e altre posizioni digitali specifiche da cui vengono inviate e ricevute le informazioni tra sistemi. Gli endpoint API sono fondamentali per le aziende per due motivi principali:
1. Sicurezza
Gli endpoint API rendono il sistema vulnerabile agli attacchi. Il monitoraggio delle API è fondamentale per impedirne l'uso illecito.
2. Prestazioni
Gli endpoint API, specialmente quelli a traffico elevato, possono causare colli di bottiglia e influenzare le prestazioni del sistema.
Come proteggere un'API REST?
Tutte le API devono essere protette tramite metodi di autenticazione e monitoraggio adeguati. I due metodi principali per proteggere le API REST includono:
1. Token di autenticazione
Questi sono utilizzati per autorizzare gli utenti a fare la chiamata API. I token di autenticazione controllano che gli utenti siano chi affermano di essere e che siano in possesso dei diritti di accesso per quella specifica chiamata API. Ad esempio, quando accedi al tuo server e-mail, il tuo client e-mail usa i token di autenticazione per l'accesso sicuro.
2. Chiavi API
Le chiavi API verificano il programma o l'applicazione che effettua la chiamata API. Identificano l'applicazione e si assicurano che abbia i diritti di accesso richiesti per effettuare quella specifica chiamata API. Le chiavi API non sono sicure come i token, ma consentono il monitoraggio dell'API per raccogliere dati sull'uso. Potresti aver notato una lunga stringa di caratteri e numeri nell'URL del browser quando visiti diversi siti Web. Questa stringa è una chiave API che il sito Web usa per effettuare le chiamate API interne.
Come si crea un'API?
Servono due diligence e sforzi per creare un'API con cui gli sviluppatori vorranno lavorare e di cui potranno fidarsi. Ecco le cinque fasi necessarie per progettare API di alta qualità:
1. Pianifica l'API
Le specifiche dell'API, come OpenAPI, forniscono il progetto per la tua API. È meglio pensare in anticipo ai diversi casi d'uso e assicurarsi che l'API rispetti gli standard di sviluppo dell'API correnti.
2. Costruisci l'API
I progettisti di API realizzano prototipi delle API usando il codice boilerplate. Una volta testato il prototipo, gli sviluppatori possono personalizzarlo secondo specifiche interne.
3. Testa l'API
Il test dell'API è come il test di un software e deve essere effettuato per evitare bug e difetti. Gli strumenti di test dell'API possono essere usati per testare la forza dell'API contro gli attacchi informatici.
4. Crea i documenti dell'API
Sebbene le API siano autoesplicative, la documentazione dell'API funge da guida per migliorarne l'usabilità. Le API ben documentate che offrono una serie di funzioni e casi d'uso tendono a essere più popolari in un'architettura orientata al servizio.
5. Commercializza l'API
Proprio come Amazon è un marketplace online per il commercio al dettaglio, esistono dei marketplace di API che gli sviluppatori usano per acquistare e vendere altre API. Mettere in vendita la tua API può farti guadagnare.
Cos'è il test dell'API?
Le strategie di test dell'API sono simili ad altre metodologie di test dei software. L'obiettivo principale è quello di convalidare le risposte del server. Il test dell'API include:
- Effettuare più richieste agli endpoint API per testare le prestazioni.
- Scrivere test dell'unità per controllare la logica di business e la correttezza funzionale.
- Eseguire test della sicurezza simulando attacchi al sistema.
Come si scrive la documentazione dell'API?
Scrivere una documentazione dell'API completa fa parte del processo di gestione dell'API. La documentazione dell'API può essere generata automaticamente usando degli strumenti oppure scritta manualmente. Alcune best practice includono:
- Scrivere le spiegazioni in un linguaggio semplice e facile da leggere. I documenti generati tramite strumenti possono diventare prolissi e necessitare di correzioni.
- Usare codici di esempio per spiegare la funzionalità.
- Mantenere la documentazione accurata e aggiornata.
- Orientare lo stile di scrittura ai principianti
- Spiegare tutti i problemi che l'API può risolvere per gli utenti.
Come si usa un'API?
Le fasi per implementare una nuova API includono:
- Ottenere una chiave API. Questo avviene creando un account verificato con il fornitore dell'API.
- Configurare un client per l'API HTTP. Questo strumento consente di strutturare le richieste API usando facilmente le chiavi API ricevute.
- Se non disponi di un client API, puoi provare a strutturare la richiesta autonomamente nel tuo browser facendo riferimento alla documentazione dell'API.
- Una volta che avrai acquisito familiarità con la nuova sintassi dell'API, potrai iniziare a usarla nel tuo codice.
Dove posso trovare nuove API?
Nei marketplace di API e nelle directory API sono disponibili nuove API Web. I marketplace di API sono piattaforme aperte dove chiunque può mettere in vendita un'API. Le directory API sono repository controllati regolati dal proprietario della directory. I progettisti di API possono valutare e testare una nuova API prima di aggiungerla alla loro directory.
Alcuni siti Web di API famosi sono:
- Rapid API: il più grande mercato di API globale con oltre 10.000 API pubbliche e 1 milione di sviluppatori attivi in loco. RapidAPI consente agli utenti di testare le API direttamente sulla piattaforma prima di acquistarle.
- Public APIs: la piattaforma raggruppa le API remote in 40 categorie di nicchia, agevolando la navigazione e l'individuazione di quella giusta che risponda alle tue esigenze.
- APIForThat e APIList: entrambi questi siti Web hanno elenchi di oltre 500 API Web accompagnate da informazioni sull'uso.
Cos'è un gateway API?
Un gateway API è uno strumento di gestione delle API per i client aziendali che usano un'ampia gamma di servizi di back-end. I gateway API in genere gestiscono attività comuni come autenticazione degli utenti, statistiche e gestione delle tariffe che sono applicabili su tutte le chiamate API.
Gateway Amazon API è un servizio completamente gestito che consente agli sviluppatori di creare, pubblicare, mantenere, monitorare e proteggere facilmente le API su qualsiasi scala. Gestisce tutte le attività di accettazione ed elaborazione relative a centinaia di chiamate API simultanee, inclusi gestione del traffico, supporto CORS, controllo di accessi e autorizzazioni, throttling, monitoraggio e gestione delle versioni delle API.
Cos'è GraphQL?
GraphQL è un linguaggio di query appositamente sviluppato per le API. La sua priorità è quella di dare ai client esattamente i dati che richiedono e nient'altro. È stato progettato per rendere le API veloci, flessibili e intuitive per gli sviluppatori. In alternativa a REST, GraphQL offre agli sviluppatori front-end la possibilità di interrogare più database, microservizi e API con un singolo endpoint GraphQL. Le organizzazioni scelgono di creare API con GraphQL perché consente di sviluppare le applicazioni più rapidamente. Leggi di più su GraphQL qui.
AWS AppSync è un servizio completamente gestito che facilita lo sviluppo di API GraphQL gestendo le attività impegnative derivanti dalla connessione sicura a origini dei dati come AWS DynamoDB, AWS Lambda e altro. AWS AppSync può inviare aggiornamenti di dati in tempo reale tramite WebSocket a milioni di client. Per le applicazioni per Web e dispositivi mobili, AppSync fornisce anche accesso ai dati locali quando i dispositivi vanno offline. Una volta implementato, AWS AppSync ricalibra automaticamente il motore di esecuzione dell'API GraphQL per soddisfare i volumi di richieste API.
Come si ottengono i servizi API di Amazon?
La gestione dell'interfaccia di programmazione delle applicazioni è una parte importante del moderno sviluppo software. Vale la pena investire nell'infrastruttura API, inclusi strumenti, gateway e architettura dei microservizi sia per gli utenti interni che per quelli esterni.
Gateway Amazon API viene fornito con una gamma completa di funzionalità per gestire più API contemporaneamente e in modo efficiente. Puoi effettuare fino a un milione di chiamate API gratuite registrandoti sul portale AWS.
AWS AppSync offre funzioni di configurazione, amministrazione e manutenzione completamente gestite di API GraphQL, con infrastruttura serverless ad alta disponibilità integrata. I prezzi sono calcolati solo in base all'uso effettivo, senza tariffe minime né utilizzo obbligatorio di servizi. Per iniziare, accedi alla console AWS AppSync.
Ottieni accesso istantaneo al piano gratuito di AWS.
Inizia subito a costruire con API Gateway nella console di gestione AWS.