Architettura del gateway API

API Gateway è un sistema di gestione delle API che fornisce gestione, monitoraggio e autenticazione per le API. I componenti che compongono API Gateway includono:

  • Gateway API: per la gestione di tutti gli aspetti di un'API di cui è stato eseguito il deployment
  • Service Control: per applicare le regole di gestione delle API.
  • Service Management: per la gestione delle configurazioni API
  • gcloud CLI: per il deployment e la gestione delle API
  • Console Google Cloud: per logging, monitoraggio e condivisione

Architettura

Di seguito è riportato un diagramma di alto livello dei componenti principali coinvolti in API Gateway:

I componenti principali di API Gateway.

In questo diagramma:

  • Il provider di API è responsabile della creazione e del deployment di un'API su API Gateway. Ogni API è definita da un file scritto come specifica OpenAPI 2.0.

    La specifica OpenAPI definisce l'URL visibile pubblicamente dell'endpoint REST per l'API, il servizio di backend a cui accede l'API e qualsiasi altra caratteristica dell'API come l'autenticazione, il formato dei dati e le opzioni di risposta.

  • Il client API effettua una richiesta REST a un'API ospitata su API Gateway per accedere ai servizi di backend. Un client API può essere qualsiasi app in grado di effettuare una chiamata REST, come un browser, un'app mobile o un'app web.

    Il client API deve conoscere solo l'URL dell'API, il verbo della richiesta (ad esempio GET, PUT, POST, DELETE), eventuali requisiti di autenticazione e il formato dei dati inviati o ricevuti dall'API.

    Il client API non ha bisogno di sapere nulla sull'implementazione del backend. Infatti, una singola API ospitata su API Gateway può essere configurata per accedere a backend diversi in base alle informazioni trasmesse nella richiesta.

Componenti di API Gateway

Gateway API

API Gateway fornisce una soluzione completamente gestita con pagamento in base al consumo per l'hosting delle tue API. Il gateway API fornisce un accesso sicuro ai servizi di backend tramite un'API REST ben definita coerente in tutti i tuoi servizi, indipendentemente dall'implementazione del servizio.

API Gateway è integrato con Google Cloud e ti consente di utilizzare gli stessi strumenti di sviluppo, monitoraggio, logging e traccia che usi con qualsiasi altro prodotto Google Cloud.

Se ti connetti a un servizio di backend ospitato al di fuori di Google Cloud, puoi comunque usufruire di tutti i servizi Google Cloud, inclusi i servizi di autenticazione e autorizzazione utilizzati per controllare l'accesso alle tue API.

API Service Control

L'API Service Control applica le regole di gestione delle API in fase di runtime, ad esempio l'autenticazione della chiave API, il monitoraggio e il logging. Service Control offre i seguenti metodi:

  • Controllo: verifica l'autenticazione e le chiavi API e indica se la chiamata deve essere consentita.
  • Report: notifica i sistemi di registrazione per il logging e il monitoraggio

API Service Management

Per definire l'API, devi utilizzare la specifica OpenAPI. Quindi utilizzerai gcloud CLI per caricare la specifica OpenAPI in Service Management, che crea la configurazione API. Qui si svolgono anche altre attività relative alla configurazione, ad esempio la condivisione dell'API con altri sviluppatori, l'abilitazione o la disabilitazione dell'API in progetti diversi e la generazione di chiavi API.

Interfaccia a riga di comando gcloud

gcloud CLI fornisce lo strumento a riga di comando gcloud che puoi utilizzare per effettuare chiamate a vari servizi Google Cloud. Puoi utilizzare Google Cloud CLI per caricare la specifica OpenAPI, che crea la configurazione API, quindi esegui il deployment della configurazione API in API Gateway.

console Cloud

La console Google Cloud è la Graphic User Interface di Google Cloud. Utilizza la console Google Cloud per esporre i dati di monitoraggio e logging registrati da Service Control, per configurare l'autenticazione e l'autorizzazione e per consentire agli sviluppatori di generare chiavi API per chiamare l'API.

Gestione di una richiesta API

In una configurazione API esistono due tipi di endpoint:

  • Endpoint API: definisce l'endpoint disponibile pubblicamente che i client utilizzano per consumare le tue API.
  • Endpoint di backend: definisce l'endpoint che l'API utilizza per connettersi al servizio di backend. Le impostazioni di sicurezza, come l'accesso HTTP o HTTPS, sono definite dall'implementazione del servizio di backend.

Le richieste all'endpoint API vengono passate all'endpoint di backend, inclusi tutti i dati passati come parte della richiesta. Le risposte del servizio di backend, inclusi i dati restituiti dal servizio, vengono ritrasmessi al client.

Routing delle richieste

Alla ricezione di una richiesta:

  1. API Gateway crea un token di traccia per Cloud Trace.

  2. API Gateway corrisponde al percorso delle richieste in entrata con l'API di destinazione. Dopo aver trovato una route corrispondente, API Gateway esegue eventuali passaggi di autenticazione per l'API specificata.

  3. Se è necessaria la convalida JWT, API Gateway convalida l'autenticazione utilizzando la chiave pubblica appropriata per il firmatario e convalida il campo pubblico nel JWT. Se è richiesta una chiave API, API Gateway chiama l'API Service Control per convalidarla.

  4. Service Control cerca la chiave per convalidarla e garantisce che il progetto associato alla chiave abbia abilitato l'API. Se la chiave non è valida o il progetto non ha abilitato l'API, la chiamata viene rifiutata e viene registrata tramite l'API Service Control.

  5. Se Service Control convalida la chiave correttamente, la richiesta insieme a tutte le intestazioni originali e un'intestazione di convalida JWT, se appropriata, vengono inoltrate al backend.

  6. Quando viene ricevuta una risposta dal backend, API Gateway restituisce la risposta al chiamante e invia le informazioni di tempistica finali a Trace. I call point vengono registrati dall'API Service Control, che scrive le metriche e i log nelle destinazioni appropriate.

Passaggi successivi