My IBM Accedi Iscriviti

Home

Think

Argomenti

Gateway API

Che cos'è un gateway API?

Che cos'è un gateway API?

Scopri la soluzione gateway API di IBM Iscriviti alla newsletter di Think
Illustrazione con collage di pittogrammi di ingranaggi, braccio robotico, telefono cellulare

Data di pubblicazione: 25 agosto 2024
Collaboratori: Gita Jackson, Michael Goodwin

Che cos'è un gateway API?

Che cos'è un gateway API?

Un gateway API è uno strumento di gestione delle API che ha funzione di intermediario tra un client API (l'applicazione sul dispositivo di un utente) e i servizi di backend (situati su un server). Un gateway API presenta un unico punto di accesso per le chiamate API.

Un'API, o application programming interface, è un insieme di regole o protocolli che consente alle applicazioni software di comunicare tra loro per scambiare dati, caratteristiche e funzioni. Una richiesta di dati proveniente da un client a un'API prende il nome di chiamata API.

Un gateway API riceve una chiamata API (a volte chiamata richiesta API), la indirizza a uno o più servizi di backend, raccoglie i dati richiesti e li consegna al cliente in un unico pacchetto combinato. Fornisce inoltre analisi, livelli di protezione dalle minacce e altre misure di sicurezza per l'applicazione.

Prendiamo come esempio l'applicazione web di un ristorante. Utilizzando un laptop o un cellulare, un utente può inserire una richiesta e accedere facilmente al menu, alle foto e alle recensioni del ristorante, nonché al servizio di pagamento offerto e consultare una mappa per verificarne la posizione, nonostante tutte queste informazioni raccolte e fornite da diversi microservizi backend o API. La richiesta inviata tramite l'applicazione dell'utente viene ricevuta ed eseguita da un gateway API.

IBM nominata Leader nel Forrester Wave for API Management Software 2024

IBM® API Connect ha ricevuto il punteggio più alto possibile in 17 criteri su 24.

Contenuti correlati La chiave per liberare il pieno potenziale delle tue API: l'API management
Il valore di un gateway API

Il valore di un gateway API

I gateway API possono essere implementati nel cloud, on-premise e in ambienti ibridi e rappresentano una componente importante sia della gestione API, sia della sicurezza delle API. I gateway API aiutano le organizzazioni a offrire un'esperienza API coerente, sicura e soddisfacente per gli utenti.

La gestione delle API è il processo scalabile di creazione, pubblicazione e gestione delle API all'interno di un'azienda. I gateway API migliorano e semplificano le attività di gestione come l'instradamento delle richieste, il bilanciamento del carico e la gestione degli errori. I gateway API migliorano inoltre l'osservabilità delle API generando registri delle chiamate API e consentendo l'uso di strumenti di analisi integrati.

La sicurezza delle API si riferisce alle pratiche e alle procedure che proteggono le API dall'uso improprio, dagli attacchi maligni e da altre minacce alla cybersecurity. I gateway API aiutano a far rispettare i protocolli di sicurezza delle API e possono essere utilizzati per gestire l'autenticazione, l'autorizzazione e altri permessi e controlli di accesso (confermando le chiavi API o integrandosi con i protocolli di autorizzazione come ad esempio OAuth), la limitazione della velocità (per proteggersi da attacchi come gli attacchi distributed denial-of-service) e la crittografia secondo le politiche in merito di sicurezza delle API di un'organizzazione.

I gateway API offrono funzioni aggiuntive per migliorare l'efficienza all'interno di un'azienda, contribuendo a consentire elevate prestazioni e alta disponibilità per applicazioni e servizi di backend. Ad esempio, i gateway API possono essere utilizzati per il caching, un processo in cui i dati più comuni vengono memorizzati a livello locale. Questo contribuisce a migliorare i tempi di risposta e riduce il carico sui server. Possono inoltre comprimere risposte di grandi dimensioni in file più piccoli, riducendo il consumo di larghezza di banda.

Offrono inoltre funzionalità di limitazione della velocità, che stabiliscono un limite alla frequenza con cui un client può inviare una richiesta a un servizio in un determinato periodo di tempo. Questo promuove la stabilità, impedisce il sovraccarico dei server e aiuta a garantire che i client abbiano pari accesso alle API.

I gateway API e le loro funzionalità aiutano le organizzazioni a bilanciare il traffico delle API e i workload man mano che l'organizzazione cresce. Centralizzando queste funzioni, i gateway API aiutano a semplificare il modo in cui un'azienda sviluppa, implementa e gestisce le API. I gateway aiutano a migliorare le prestazioni, la scalabilità e la disponibilità di app e servizi e consentono agli sviluppatori di concentrarsi maggiormente sulla logica core business piuttosto che sull'amministrazione delle API.

Come funziona un gateway API?

Come funziona un gateway API?

Le API consentono alle applicazioni di comunicare tra loro e di condividere i dati sia all'interno, sia all'esterno dell'ambiente IT di un'organizzazione. Le aziende moderne possono avere migliaia di API e un gateway fornisce un punto focale centrale, una "porta d'ingresso", e un'interfaccia standardizzata che aiuta a gestire e instradare le chiamate API da un'unica posizione. Un'organizzazione può scegliere di utilizzare più gateway, come fanno peraltro molte altre organizzazioni, per consentire l'applicazione di protocolli e standard di sicurezza diversi ad API o utenti diversi, ma comunque valgono gli stessi principi.

Richieste e instradamento

Un gateway API riceve tutte le chiamate dirette agli endpoint API di un'azienda, autentica le chiamate, le elabora in base alle politiche organizzative, le indirizza verso i servizi appropriati, infine aggrega e restituisce i risultati al client API che ha effettuato la chiamata. Anche se vengono richiesti e si accede a più servizi attraverso una chiamata API, il client riceve solo una risposta con tutti i dati.

Composizione API

Un gateway API offre l'orchestrazione del workflow in quanto aggrega le informazioni richieste da più microservizi, raggruppa i dati e li restituisce al richiedente in forma composita.

Traduzione di protocolli e dati

Un gateway API gestisce la traduzione di dati e protocolli nei casi in cui il dispositivo client e i microservizi utilizzino linguaggi, formati (ad esempio, la richiesta arriva utilizzando JavaScript o JSON ma il microservizio utilizza XML) o protocolli (come le richieste HTTP rispetto alle richieste gRPC) differenti.

Memorizzazione nella cache

Per le informazioni più richieste, i gateway API potrebbero utilizzare la memorizzazione nella cache per accelerare i tempi di risposta alla richiesta. Questi dati vengono memorizzati in una cache separata in modo che il gateway possa restituirli rapidamente senza dover indirizzare il traffico verso un servizio aggiuntivo.

Monitoraggio e registrazione

I gateway API possono monitorare e registrare le richieste, le risposte e gli errori delle API. Questi dati analitici possono essere utilizzati per ottenere una migliore conoscenza del traffico e delle prestazioni delle API, migliorare la risoluzione dei problemi e rafforzare la sicurezza.

 

Perché utilizzare un gateway API?

Perché utilizzare un gateway API?

Le API sono fondamentali per il flusso di dati nei sistemi moderni e i gateway API aiutano a proteggere le API e le applicazioni, aiutano le organizzazioni a raccogliere dati preziosi e contribuiscono a garantire le prestazioni delle API.

I gateway API possono rendere i processi più efficienti. Tutte le API di un'organizzazione potrebbero dover completare alcune attività comuni insieme alla loro funzione specifica ogni volta che viene effettuata una chiamata a tale API. In un ecosistema API-first, in cui le API sono gli elementi costitutivi su cui viene costruito il software, questo è particolarmente diffuso.

Ad esempio, per rispettare i protocolli di sicurezza delle API, ogni chiamata API potrebbe dover passare attraverso un processo di autorizzazione e convalida. Oppure, per garantire una larghezza di banda adeguata, potrebbe essere necessario monitorare ogni API per quanto riguarda i tassi di utilizzo e il traffico. Se le API vengono monetizzate, potrebbe essere necessario instradare ogni chiamata verso un servizio di fatturazione. Un gateway API può gestire tutte queste attività.

Alcune chiamate API richiedono risorse da diversi microservizi; un gateway API suddivide tali chiamate, indirizza le richieste verso i servizi di backend appropriati e aggrega le risorse richieste in un'unica risposta per il cliente. In questo modo si evita che il client debba inviare una chiamata API separata a ogni microservizio, semplificando il processo e riducendo il carico delle chiamate. Le chiamate vengono sempre indirizzate allo stesso posto e il gateway organizza il recupero e la restituzione delle risorse.

Questa funzionalità è particolarmente utile in un ambiente DevOps, in cui le architetture di microservizi spesso vengono utilizzate per aiutare i team ad accelerare lo sviluppo e fornire costantemente nuovi servizi e app. I microservizi si basano sulle API per comunicare e i gateway possono essere utilizzati per orchestrare questa comunicazione. Un gateway API può inoltre aiutare a garantire che ogni chiamata si posizioni correttamente quando più versioni di un'applicazione si trovano sullo stesso server.

I gateway API sono utilizzati anche nei modelli di elaborazione serverless e in altri approcci di sviluppo cloud-native. In un modello serverless, l'infrastruttura e altri servizi di back-end vengono eseguiti su richiesta e avviati utilizzando le API. I gateway possono essere utilizzati per gestire questa funzione.

Gli ambienti IT moderni si basano sull'integrazione, il cui successo si basa in gran parte sulle API. Più è complesso un ambiente API e maggiore è il traffico proveniente dalle API, maggiore è il valore che un gateway API può fornire.

Gateway API e microservizi

Gateway API e microservizi

Un'architettura di microservizi è un approccio allo sviluppo software in cui le applicazioni sono composte da parti più piccole e funzionanti indipendentemente. Queste funzioni distinte possono essere implementate in modo autonomo e comunicare tramite API. Sono progettate per raggiungere un obiettivo unico, con l'intenzione di essere raggruppate come elementi costitutivi di programmi più ampi.

L'instradamento delle chiamate dai client API verso questi singoli microservizi è possibile, ma non è molto efficiente e richiederebbe quindi una chiamata separata per ogni risorsa. Un gateway API consente a un'organizzazione di restituire le risorse richieste con una singola chiamata API.

Funziona in questo modo: il gateway riceve la chiamata API che richiede la comunicazione con diversi microservizi. Interrompe la richiesta, indirizza ogni segmento verso le risorse appropriate e aggrega le risorse in un'unica risposta per il client API. Man mano che un'organizzazione aumenta il numero di API e microservizi utilizzati nelle funzioni aziendali, un gateway API aiuta a ridurre il volume delle chiamate e la complessità dell'instradamento delle chiamate svolgendo la funzione di punto di ingresso singolo standardizzato.

Immaginiamo che un cliente voglia estrarre le informazioni sui prodotti da un negozio di e-commerce creato utilizzando un'architettura di microservizi. I dettagli del prodotto che il cliente desidera estrarre sono distribuiti su più servizi diversi: un servizio per le informazioni di base sul prodotto, un servizio per i prezzi, un servizio per l'inventario e così via.

Il gateway API riceve la richiesta di informazioni sul prodotto, la indirizza per estrarre i dati da ciascun servizio necessario per soddisfare la richiesta, quindi li compila e li invia al cliente come risposta completa.

Gateway API e Kubernetes

Gateway API e Kubernetes

Kubernetes è considerato lo standard del settore per l'implementazione e la gestione di microservizi containerizzati. I gateway API possono interagire con un cluster Kubernetes containerizzato in diversi modi.

Se distribuito in più di un cluster Kubernetes, un gateway API può avere funzione di bilanciamento del carico, indirizzando il traffico verso il cluster corretto in modo che nessuna istanza venga sovraccaricata. Una volta implementato sull'edge di un singolo cluster Kubernetes, un gateway API può avere funzione di controller di ingresso. I controller di ingresso indirizzano il traffico in un cluster Kubernetes, verso i servizi richiesti e poi di nuovo in uscita. Una volta implementato all'interno di un cluster Kubernetes, un gateway API può avere funzione di service mesh. Un service mesh gestisce il traffico tra i servizi Kubernetes, offrendo il bilanciamento del carico e il rilevamento dei servizi ed è comunemente utilizzato per la crittografia end-to-end.

Come un gateway API migliora la gestione del gateway API Gateway

Come un gateway API migliora la gestione del gateway API Gateway

Oltre a consentire alle organizzazioni di indirizzare e bilanciare il traffico delle API in modo più efficace, i gateway API rafforzano la gestione delle API favorendo quanto segue:

  • Bassa latenza
  • Maggiore sicurezza
  • Riduci la complessità


Bassa latenza

I gateway API possono aiutare a ottimizzare l'instradamento del traffico e il bilanciamento del carico tra i servizi di backend gestendo le chiamate API attraverso un punto di ingresso centralizzato. Tali misure aiutano a mantenere una bassa latenza. I gateway API utilizzano una varietà di metodi per la gestione del traffico API che utilizzano la larghezza di banda in modo più efficiente e migliorano l'esperienza dell'utente.

Uno di questi metodi è la limitazione della velocità. I criteri di limitazione della velocità specificano il numero di richieste (una quota di richieste) che un client specifico può effettuare a un'API in un determinato periodo di tempo. In questo modo si garantisce che gli utenti abbiano pari accesso alle API e si evita che i servizi di back-end vengano sovraccaricati dalle richieste.

La limitazione delle richieste è un tipo di limitazione che regola la frequenza delle richieste che raggiungono un server. Questo previene i picchi e aiuta le organizzazioni a mantenere prestazioni e stabilità.

I gateway API possono anche eseguire il bilanciamento dinamico del carico monitorando costantemente il traffico verso i servizi di backend. Un gateway API può determinare lo stato di salute di un server in base a metriche in tempo reale e regolare il modo in cui instrada le chiamate ai servizi di backend.

Maggiore sicurezza

Le API sono vulnerabili agli attacchi di cybersecurity, come gli attacchi DDoS (Distributed Denial-of-Service). Gli attacchi DDoS sovraccaricano i server con richieste e traffico dannoso, provocandone l'arresto. Un gateway API supporta la limitazione della velocità e altre tecniche per aiutare a contrastare gli attacchi DDoS.

I gateway API possono inoltre aiutare a proteggere le API monitorando l'utilizzo delle API e fornendo log del traffico. Alcuni gateway API forniscono inoltre report e analisi sulle richieste effettuate a qualsiasi API nell'infrastruttura di un'organizzazione, consentendo all'organizzazione di identificare il traffico sospetto prima che si verifichi un attacco.

I gateway API non solo aiutano nella gestione del traffico e offrono una connessione sicura alle API, ma possono inoltre essere configurati per fornire l'autenticazione API e richiedere l'autorizzazione, riducendo la vulnerabilità delle API di un'organizzazione. Ad esempio, i gateway API vengono utilizzati per verificare le chiavi API quando vengono ricevute chiamate da un client prima di concedere l'accesso alle risorse. Per una maggiore sicurezza, i gateway API possono essere utilizzati insieme a strumenti come i web application firewall (WAF), che monitorano, filtrano e bloccano il traffico HTTP dannoso.

Minore complessità

I gateway API centralizzano il flusso di chiamate API, migliorando la visibilità e la scoperta del servizio. Forniscono inoltre modalità di comunicazione tra API che utilizzano protocolli e formati di dati differenti.

Numerose API web utilizzano uno stile architettonico chiamato REST (Representational State Transfer, utilizzato nelle API REST), sebbene vengano utilizzati anche altri protocolli, come SOAP (simple object access protocol) e le API WebSocket. Che si tratti di chiamate all'interno di un'organizzazione o di chiamate esterne dirette alle API interne di un'organizzazione, è comune avere API con vari protocolli e formati di dati che devono comunicare tra loro e richiedere risorse dagli stessi servizi di back-end.

La conversione manuale di ogni richiesta richiederebbe una quantità di tempo astronomica; i gateway API aiutano a eliminare questo problema eseguendo la traduzione di dati e protocolli, traducendo automaticamente richieste e risposte nel formato necessario.

I gateway API rendono anche più facile per gli sviluppatori iterare e distribuire le API in quanto i gateway API possono gestire contemporaneamente più versioni di un'API. Gli sviluppatori possono quindi testare più versioni di un'API l'una rispetto a l'altra prima dell'implementazione o mantenere un'istanza di una versione precedente dell'API per casi d'uso specifici.

I benefici aggiuntivi dell'API includono:

  • Estensione delle app legacy: le aziende utilizzano ancora applicazioni legacy che contengono dati fondamentali, svolgono funzioni significative e forniscono valore, ma le app non sono state scritte per le API. Tali tecnologie obsolete possono avere difficoltà a gestire il crescente numero di chiamate provenienti da tecnologie più recenti, come le app mobili, SaaS o IoT . Possono anche essere di difficile accesso. Invece di affrontare una complicata migrazione sul cloud, un team DevOps può aggiungere funzionalità API, inclusi vantaggi come la limitazione della velocità e la riduzione, per modernizzare ed estendere le funzionalità di un'applicazione legacy.

  • Memorizzazione nella cache dei microservizi: i gateway API possono aiutare a ottimizzare le chiamate API, ad esempio con la memorizzazione nella cache dei microservizi. La memorizzazione nella cache delle risposte alle chiamate API consente di evitare carichi non necessari sui servizi back-end. Le risposte memorizzate nella cache possono essere utilizzate quando vengono ricevute richieste simili, migliorando così le prestazioni e riducendo i costi.

  • Monitoraggio e tracciamento dell'analisi delle applicazioni: poiché un gateway API controlla tutto il traffico in entrata di un'applicazione, è semplice fare in modo che il software monitori e produca report su visibilità, tendenze e altri insight sull'utilizzo delle API. Il software gateway può inoltre creare log del traffico che aiutano un fornitore di API a conoscere e risolvere i problemi dell'infrastruttura.
Sfide dei gateway API

Sfide dei gateway API

Mentre i gateway API possono aiutare a risolvere problemi di instradamento complessi, l'aggiunta di un nuovo software di gestione a qualsiasi organizzazione può anche introdurre nuove sfide. Alcune sfide comuni includono:

  • Problemi di scalabilità
  • Un singolo punto di errore
  • Dipendenza del gateway/blocco da fornitore 

Problemi di scalabilità

Sebbene i gateway API possano aiutare a organizzare l'infrastruttura delle API e ridurre la latenza, se ricevono più richieste di quelle per cui sono configurati e non dispongono di risorse sufficienti per gestire il traffico, possono aumentare la latenza.

Le organizzazioni devono assicurarsi che i gateway API siano forniti e configurati per soddisfare l'ambiente API e le richieste di traffico dell'azienda. Quando un'azienda aumenta la quantità di API e servizi in uso in un dato momento, le risorse devono essere scalate e approvvigionate di conseguenza, per evitare che gli utenti subiscano interruzioni del servizio.

Singolo punto di errore
 


Un unico punto di accesso significa anche che può esserci un unico punto di errore. La centralizzazione delle API presenta innumerevoli vantaggi, ma lo svantaggio è che il gateway stesso diventa un potenziale vettore di attacco o infiltrazione. I problemi relativi ai gateway possono avere effetti su tutti gli aspetti di un'azienda che si basano sull'accesso alle API e ai servizi di backend.

Dipendenza del gateway

Una volta che un'organizzazione ha scelto il gateway API che soddisfa le sue esigenze specifiche e ha costruito il proprio ambiente API attorno a quel gateway API, passare a un altro fornitore può essere costoso e richiedere molto tempo.

Inoltre, mentre i gateway possono rendere l'utilizzo delle API più conveniente, il gateway richiederà anche il monitoraggio e la gestione, il che costa tempo e denaro. In alcuni casi, un'organizzazione potrebbe scegliere di ospitare autonomamente un gateway open source, anziché utilizzare un servizio gestito, per avere un controllo più preciso sulle sue varie opzioni. Se un'organizzazione sceglie un'opzione self-hosted, questo aumenterà i costi generali complessivi per il team di sviluppo.

Soluzioni correlate

Soluzioni correlate

Strumenti gateway API di IBM API Connect

Il gateway API, basato su IBM® DataPower, è un gateway aziendale progettato per esporre in modo sicuro dati e applicazioni aziendali ovunque risiedano, on-premise e nei cloud. Offre un set completo di criteri per la sicurezza, la gestione del traffico, la mediazione, le accelerazioni e il supporto per i protocolli non HTTP.

Esplora gli strumenti gateway API di IBM API Connect

IBM API Connect

IBM® API Connect è una soluzione completa di gestione delle API lungo tutto il loro ciclo di vita che utilizza un'esperienza intuitiva per consentirti di creare, gestire, proteggere, diffondere e monetizzare le API in modo coerente, contribuendo a potenziare la trasformazione digitale on-premise e nei cloud.

Esplora IBM API Connect

IBM Cloud Pak for Integration

IBM Cloud Pak for Integration è una piattaforma di integrazione ibrida che applica la funzionalità dell'automazione AI a loop chiuso per supportare multipli stili di integrazione. La piattaforma offre un set completo di strumenti di integrazione all'interno di una singola esperienza unificata, per collegare applicazioni e dati in qualsiasi ambiente cloud oppure on-premises.

Esplora IBM Cloud Pak for Integration
Risorse

Risorse

Comprendi IBM API Connect

Accedi ad una panoramica tecnica di IBM API Connect, le sue fasi del ciclo di vita delle API e i suoi principali componenti di prodotto.

SDK vs API: qual è la differenza?

Impara a conoscere i Software Development Kit (SDK) e le Application Programming Interfaces (API) e il loro ruolo nel migliorare i cicli di sviluppo software e l’esperienza utente finale (UX).

Cos'è un'API REST?

Un’API REST (chiamata anche API RESTful o API Web RESTful) è un’application programming interface (API) conforme ai principi di progettazione di stile architetturale REST (representational state transfer).

Cos'è il monitoraggio API?

Il monitoraggio API è il processo di osservazione delle prestazioni, della disponibilità e della funzionalità delle API aziendali.

Cos'è la gestione delle API?

La gestione delle API è il processo scalabile di creazione, pubblicazione e gestione delle connessioni API, che consente di condividerle, controllarne l’accesso, tracciarne l’utilizzo e applicare le policy di sicurezza.

Che cos'è l'automazione?

L’automazione è l’applicazione di tecnologie, programmi, robotica o processi per ottenere risultati con il minimo input umano.

Fai il passo successivo

Utilizza IBM API Connect per proteggere e gestire le API aziendali durante il loro ciclo di vita. Aiuta te e i tuoi clienti a creare, gestire, proteggere, socializzare e monetizzare costantemente le API aziendali ed è disponibile anche come API management platform altamente scalabile su IBM Marketplace e AWS.

Esplora API connect Prenota una demo live