HDG spiega: cos'è un'API?

In una Internet piena di acronimi confusi e sconosciuti(confusing and unfamiliar acronyms) , può essere facile confondersi. Un acronimo web che potresti aver sentito ma che non ti sei mai sentito ispirato a esaminare è "API".

Che cos'è un'API(API) ? API è l'acronimo di Application Programming Interface ed è un nome per un insieme di routine e protocolli che rendono molto più semplice il processo di creazione di applicazioni software.

Un modo semplice per guardare un'API(API) è come una tabella di marcia che dice ai componenti di un software come interagire. Senza l'uso di un'API(API) , il codice sorgente potrebbe sembrare un pasticcio confuso e confuso.

Tuttavia, le API(APIs) sono complesse e richiedono più di un breve riepilogo. In questo articolo, esaminiamo come funzionano le API(APIs) e quali siti e servizi le utilizzano.

Che cos'è un'API e come funziona?(What Is An API and How Does It Work?)

Ora che abbiamo stabilito che un'API(API) è un insieme di routine che indirizzano il software nella giusta direzione, come funziona esattamente tutto questo?

Il modo migliore per spiegare la funzionalità principale di un'API(API) è fornire un esempio del mondo reale. I servizi di consegna di cibo(Food) , come GrubHub , sono incredibilmente popolari in questo momento, quindi discutiamo di come potrebbe funzionare il codice alla base di app mobili come queste.

Quando cerchi un ristorante o un alimento su una di queste app, ricevi risultati pertinenti in base alle parole chiave e alla posizione. Dopo aver selezionato un risultato, ti vengono presentate le opzioni degli alimenti, i tempi di consegna e altre opzioni specifiche per il ristorante.

Per pianificare la consegna, è necessario che si verifichi una connessione tra il sito Web di consegna e un database: il sito Web è il front-end e il database è il back-end. Il database è ciò che memorizza i dati per tutti questi ristoranti, la loro disponibilità per posizione, il programma operativo, i menu e altro ancora.

L' API è la connessione tra questo database e il sito Web o l'app che presenta i suoi dati. È importante che sia presente un'API(API) per creare questa connessione, piuttosto che utilizzare dati codificati, principalmente a causa della popolarità delle integrazioni di terze parti. 

Ad esempio, sarebbe vantaggioso per un sito Web se aggregatori di terze parti fossero in grado di elencare e organizzare tutti i ristoranti e gli articoli che ha a disposizione, giusto? Senza un'API(API) , ciò non sarebbe possibile senza l'utilizzo di tecniche di scraping web inefficienti.

L' API è l'interfaccia responsabile della trasmissione dei dati dal database all'applicazione, sia essa un sito Web, un'app mobile o qualsiasi altra cosa. Le API(APIs) sono diventate il modo standard per accedere e comunicare i dati delle applicazioni sul Web e tutti i principali siti Web o servizi che dipendono dalla connettività di terze parti traggono grandi vantaggi dal fornirne una.

Quali tipi di API esistono?(What Types Of APIs Are There?)

Esistono diversi tipi di protocolli API , ma i tre più popolari sono SOAP ( Simple Object Access Protocol ), REST ( Representational State Transfer ) e RPC ( Remote Procedure Call ).

API SOAP(SOAP APIs)

SOAP è stato introdotto per la prima volta alla fine degli anni '90 e ha consentito alle applicazioni di condividere le risorse in modo semplice utilizzando le connessioni di rete. SOAP si basa su protocolli standard, come HTTP e SMTP , che ne consentono l'utilizzo praticamente in ogni ambiente grazie alla popolarità di tali protocolli.

Il suo principale punto di forza è che è ampiamente utilizzato e affermato. Se non è rotto, non aggiustarlo.

API REST(REST APIs)

REST è stato introdotto nel 2000 da Roy Fielding . Il suo obiettivo immediato era di agire come risposta a molti dei problemi creati dall'adozione diffusa di SOAP .

Simile a SOAP , REST si basa su HTTP per trasferire le informazioni tra le applicazioni. Tuttavia, una delle principali differenze che lo distingue da SOAP , che richiede la trasmissione dei dati tramite il formato dati XML , è che supporta JSON . JSON è un formato di dati che molti concordano è più facile da leggere e scrivere. Inoltre, le API REST(REST APIs) possono memorizzare nella cache i dati, consentendo prestazioni molto migliori.

REST ora rappresenta oltre l'80% di tutte le API(APIs) , secondo un rapporto del 2017 di Cloud Elements .

API RPC(RPC APIs)

Le API RPC(RPC APIs) sono disponibili in molte versioni, ma come abbiamo appreso dalle API REST(REST APIs) , JSON è un formato di dati molto popolare, quindi JSON-RPC è il più popolare.

JSON-RPC è un protocollo più adatto per i minimalisti e gli utenti che fanno affidamento sulla semplicità della loro API . Ha un ambito molto più ristretto rispetto a SOAP e REST ed è molto limitato nella sua flessibilità e nel set di comandi, ma per alcuni sviluppatori, meno è di più.

Esistono altri tipi di API basati su RPC , come gRPC, ma JSON-RPC è l'ideale se la tua priorità è la semplicità di implementazione.

Chi usa le API?(Who Uses APIs?)

Gli sviluppatori di qualsiasi tipo, frontend o backend, dovrebbero avere esperienza di lavoro con le API(APIs) . In termini di siti Web o servizi Web, praticamente tutti i principali attori hanno a disposizione una sorta di API , la più ovvia è Windows .

Poiché Microsoft Windows è il sistema operativo più popolare al mondo, è naturale che gli sviluppatori di applicazioni abbiano bisogno di una serie di linee guida su come interagire con la sua interfaccia utente. Senza l'accesso all'API di Windows(Windows API) , la programmazione di un'applicazione che fa molto affidamento sull'interazione con il sistema operativo sarebbe un grosso problema.

Ci sono migliaia di API(APIs) là fuori, alcune gratuite e altre a pagamento. Ecco solo alcuni esempi che vale la pena esaminare:

Le API(APIs) sono uno dei connettori chiave dietro alcuni dei siti Web e delle applicazioni più grandi e importanti del Web. Sebbene l'utente medio potrebbe non essere in grado di vedere i vantaggi offerti dalle API(APIs) , sono una manna dal cielo per sviluppatori e servizi web.



About the author

Sono un ingegnere del software con oltre 10 anni di esperienza nella creazione e manutenzione di Mac Apple, dispositivi iOS e browser Google Chrome. la mia esperienza include lo sviluppo, la manutenzione e il funzionamento di prodotti software da zero o il contributo a progetti open source. Ho anche avuto l'opportunità di lavorare su un'ampia varietà di progetti hardware, dalla riparazione di schermi rotti negli ospedali alla progettazione e implementazione di nuove funzionalità per iPhone. Nel mio tempo libero, mi diverto a giocare ai videogiochi preferiti, leggere libri, cucinare la cena con la mia famiglia o passare il tempo con gli amici.



Related posts