Categorie
Javascript Programmazione

{JS} Le API (Application Programming Interface)

Cosa sono le API?

Le API sono interfacce che permettono alle applicazioni di parlare con altre applicazioni.

API è l’acronimo di “Application Programming Interface”;
Tradotto non letterale, “Interfaccia di programmazione tra applicazioni”, di fatto, interfacciano applicazioni differenti con lo scopo di farle dialogare e consentire la programmazione.

Un API è quindi un applicazione/software che funge da “ponte/gancio” e che possiede comandi proprietari (oggetti, classi, proprietà e metodi) che estendono le funzionalità di una applicazione consentendo l’interazione, integrazione e intercomunicazione con un’altra applicazione.

Per “altre applicazioni” intendiamo siti, app, sistemi operativi, sistemi sviluppato con differenti tecnologie, database ecc.

Le API ci permettono in buona sostanza di dialogare con tutto ciò che è differente dalla nostra applicazione/sito.

Note: Le API vengono anche chiamate Web Services / Servizi Web

Similitudine del ristorante

Per comprendere meglio il funzionamento possiamo utilizzare la similitudine del ristorante.

Cliente (APPLICAZIONE 1)  > Cameriere (API)  > Cuoco (APPLICAZIONE 2)

Il cliente, che può essere un browser-client, un web-app o un app-smartphone, consulta il menu-alla-carta ed effettua delle richieste/ordinazioni.
Il menu-alla-carta propone determinati piatti e non sono previste ordinazioni fuori-menu.
Il cameriere, che è l’API, prende l’ordinazione dei piatti e consegna la comanda al cuoco in cucina.
Quando il cuoco ha preparato il tutto, il cameriere, ritira le pietanze dalla cucina e le consegna al cliente.

Il cliente è un “applicazione” differente dal cuoco; Il menu-alla-carta rappresenta l’insieme delle regole secondo cui è possibile ordinare; Il cameriere è “l’API” che fa da tramite tra il cliente ed il cuoco, ovvero, prende le richieste le fa processare e consegna il risultato.

In ultimo potrebbe accadere che il piatto ordinato non sia disponibile o si sia effettuato una richiesta fuori-menu che non è possibile soddisfare.
A quel punto, il cameriere tornerà al cliente per avvisarlo che non è possibile soddisfare la richiesta.

In questo caso si è effettuata una richiesta, sempre tramite l’API, errata o che non è possibile soddisfare in quel momento.

  • Cliente e cuoco restano al loro posto e non vengono in contatto.
  • Al cameriere non interessa cosa ordina il cliente.
  • Tutti agiscono attraverso un protocollo ben preciso ovvero il menu-alla-carta.

Il cameriere è la nostra API.

Funzionamento di un API

Nell’utilizzo di un API agiscono tre operatori:

  • Client: l’applicazione che effettua la chiamata all’API per ottenere in ritorno dei dati; è anche definita “API Call”, ovvero, “L’app che chiama l’API”;
  • API: è un middleware, un software che sta nel mezzo ubicato sul server, che si occupa direttamente di richiedere le informazioni al Server e restituire le risposte.
  • Server:  è “l’unità” che continente dati, database ed in genere informazioni e che si occupa al momento della richiesta da parte di un API di fornisce quanto richiesto.

    Il client non ha necessità di conoscere il funzionamento del programma presente sul Server, ma solo delle regole necessarie per effettuare le chiamata.

I Client possono essere browser, web-app, app-smartphone ecc.
Le Api, sono programmi “middleware” che fanno da tramite e risiedono sul server.
I Server sono computer di terze-parti, collegati in rete, che tramite un software interno per la gestione dello stesso, Apache, Node.js ecc., e una programmazione sviluppata con linguaggi backend gestiscono le domande, richeste HTTP, e le risposte da reinvitare all’API.
Tutte le API sono corredate di accurate documentazioni.

API Documentation

E’ è un prodotto di contenuto tecnico, contenente istruzioni su come usare e integrarsi efficacemente con un’API. È un manuale di riferimento conciso che contiene tutte le informazioni necessarie per lavorare con l’API, con dettagli su funzioni, classi, tipi di ritorno, argomenti e altro, supportato da tutorial ed esempi. La documentazione API è creata in forma testuale, spesso integrando snippet di codice che illustrano le funzioni principali.

API Security

Le API possono restituire molteplici tipi di dati inclusi dati sensibili di utenti e non solo; possono quindi rappresentare anelli deboli sfruttabili da hacker e malintenzionati che, trattandosi di ponti-per-le-informazioni, potrebbero tentare di superare le difese di un applicativo con finalità malevole.

Queste prime considerazioni portano a un tema per il corretto funzionamento di un’API, la sicurezza.

 I criteri utilizzati per rafforzare la sicurezza di una connessione API sono:

  • Creazione di token identificativi: i token vengono generati dal Server in corrispondenza della creazione di un profilo Client, e utilizzati nella chiamata API.
<script async
    src="https://maps.googleapis.com/maps/api/js?key=CHIAVE-PERSONALE-API&callback=initMap">
</script>
  • Limiti alle chiamate: il numero di chiamate che ogni servizio può effettuare al Server tramite API viene limitato; questo evita sia errori di programmazione (endless loop), sia attacchi malevoli di natura Denial of Services. Evita inoltre che un solo Client monopolizzi le risorse dell’applicativo.
  • Utilizzo di Sniffers: analizzare il traffico e l’utilizzo del network in entrata e in uscita tramite sniffers permette di individuare comportamenti anomali e problemi.
  • API Gateway: un API Gateway agisce come un casello autostradale per il traffico API. Permette di controllare traffico in entrata e in uscita, informazioni diffuse e come le API vengono utilizzate.

Tipologie di API

Esistono varie tipologie di API:

API native

Le API native sono api built-in, ovvero, api già integrate, già disponibili all’interno di software.
Alcuni esempi di api native sono le WEB-API, DOM API, FETCH API e gli oggetti windows, navigator, geolocation ecc.

API terze parti (Third-Party)

Le Api di terze-parti sono api che possono essere integrate e si distinguono in base al tipo di accesso ad esse:

API Pubbliche

Sono servizi accessibili al pubblico e quindi disponibili a chiunque.
E’ consentito quindi sviluppare app che interagiscono con l’API.
Sono talvolta usate anche con finalità di branding per incentivare l’utilizzo di una piattaforma.

Un API pubblica può essere:

  • totalmente gratuita
  • presentare limiti di utilizzo nella versione gratuita
  • richiedere il versamento di un corrispettivo per l’utilizzo

Pubblica non significa necessariamente gratuita.

API Private

L’API è destinata solo a un utilizzo interno.
Sono servizi utilizzati solo all’interno dell’azienda utilizzate per il funzionamento specifico di un applicativo.

API Partner

L’API è condivisa tra specifici partner aziendali. Sono API usate ad esempio per fornire servizi di pagamento, tracciatura di attività, servizi, integrazione software.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *