Per fare in modo che l'API sia gestita da Cloud Endpoints, sono disponibili tre opzioni: su dove è ospitata l'API e sul tipo di protocollo di comunicazione Utilizzo dell'API:
- Cloud Endpoints per OpenAPI
- Cloud Endpoints per gRPC
- Cloud Endpoints Frameworks per l'ambiente standard di App Engine
In questa pagina vengono descritte le opzioni di Endpoints per aiutarti a decidere quello più adatto a te.
Scelta di un'opzione di computing
Endpoints supporta diverse opzioni di cloud computing di Google Cloud che possono ospitare il codice di backend dell'API. Endpoints funziona con Extensible Service Proxy (ESP) o Extensible Service Proxy V2 (ESPv2) per fornire la gestione delle API. La tabella seguente riassume le opzioni di computing supportate:
ESP per OpenAPI | ESP per gRPC | ESPv2 per OpenAPI | ESPv2 per gRPC | Framework di Endpoints | |
---|---|---|---|---|---|
Ambiente standard di App Engine di 1ª generazione |
Runtime Java 8 e Python 2.7 | ||||
Ambiente standard di App Engine di 2ª generazione |
|||||
App Engine un ambiente flessibile |
|||||
Funzioni Cloud Run | |||||
Cloud Run | |||||
Knative serving | |||||
Compute Engine | |||||
GKE | |||||
Kubernetes | |||||
Altri servizi non Google Cloud |
Per un confronto delle funzionalità fornite da App Engine, GKE e Compute Engine, consulta Scelta di un'opzione di computing. Se stai pensando di utilizzare App Engine, devi scegliere l'ambiente standard o flessibile. Per un confronto tra i due ambienti, consulta Scegliere un ambiente App Engine.
Informazioni sulle limitazioni delle opzioni di calcolo
È possibile utilizzare Endpoints per OpenAPI ed Endpoints per gRPC ESP o ESPv2 come proxy. Per le piattaforme non serverless, il deployment di ESP o ESPv2 viene eseguito come container di fronte al o come file collaterale con la tua applicazione. Per le piattaforme serverless, come Cloud Run, le funzioni Cloud Run e App Engine, ESPv2 viene distribuito come servizio Cloud Run come proxy remoto per gestire le applicazioni della piattaforma serverless.
Dopo aver eseguito il deployment del codice di backend dell'API, ESP o ESPv2 intercetta tutte le richieste ed esegue tutti i controlli necessari (ad esempio l'autenticazione) prima di inoltrare la richiesta al backend dell'API. Quando il backend risponde, l'ESP raccoglie e registra la telemetria utilizzando Service Infrastructure.
Puoi visualizzare le metriche per la tua API e i link ai log e alle tracce di Google Cloud Observability nella pagina Servizi Endpoints della console Google Cloud.
Limitazioni dell'ambiente di generazione 1 standard di App Engine
In passato, gli endpoint per l'ambiente standard di App Engine di 1ª generazione utilizzavano Endpoints Frameworks, che supporta solo gli ambienti di runtime Java 8 e Python 2.7.
Poiché l'ambiente standard di App Engine non supportava gli implementazioni multi-container quando Endpoints Frameworks era in fase di sviluppo, Endpoints Frameworks non utilizza ESP. Endpoint Frameworks include invece un modello Gateway API che offre funzionalità di gestione delle API paragonabili alla funzionalità fornite da ESP per Endpoints per OpenAPI e Endpoint per gRPC.
Le API gRPC non sono supportate nelle funzioni di App Engine o Cloud Run
gRPC è un framework di chiamate di procedura remota (RPC) che può essere eseguito su qualsiasi ambiente. Con gRPC, un'applicazione client può chiamare direttamente metodi in un'applicazione server su un'altra macchina come se fosse un oggetto locale. Una funzionalità di base di gRPC è lo streaming bidirezionale con trasporto basato su HTTP/2.
Le funzioni App Engine e Cloud Run non supportano HTTP/2.
Linguaggi di programmazione supportati
- La Specifica OpenAPI è una specifica indipendente dalla lingua. Puoi implementare l'API in qualsiasi linguaggio di programmazione.
- gRPC fornisce
compilatore del buffer di protocollo,
protoc
, per molti dei principali linguaggi di programmazione: C++, C#, Objective-C (per iOS), Dart, Go, Java (incluso il supporto per Android), Node.js, Python e Ruby. Per un elenco aggiornato, consulta le Domande frequenti su gRPC. - Endpoints Frameworks supporta solo Java 8 e Python 2.7.
Descrizione dell'API
Le opzioni Endpoint forniscono diversi modi per descrivere l'API.
Endpoint per OpenAPI
L'OpenAPI Initiative è un progetto a livello di settore per standardizzare la descrizione delle API REST. Endpoints supporta le API descritte utilizzando la versione 2.0 della specifica OpenAPI (in precedenza specifica Swagger). Descrivi superficie dell'API in un file JSON o YAML (denominato documento OpenAPI). Puoi implementare la tua API utilizzando qualsiasi framework REST disponibile pubblicamente, ad esempio Django o Jersey. Se non hai familiarità con la specifica OpenAPI, consulta la panoramica di OpenAPI.
Per ulteriori informazioni, vedi Endpoint per OpenAPI.
Endpoint per gRPC
Con gRPC, definisci la struttura dei dati da serializzare in un
file proto: si tratta di un normale file di testo con estensione .proto
. Inoltre
devi definire
superficie
dell'API in file proto, con parametri del metodo RPC e tipi restituiti
specificate come messaggi del buffer di protocollo. Se non hai dimestichezza con gRPC, consulta
Che cos'è gRPC?
nella documentazione di gRPC.
Per ulteriori informazioni, consulta Endpoint per gRPC.
Endpoints Frameworks
Endpoints Frameworks è un framework web per gli ambienti di runtime Python 2.7 e Java 8 standard di App Engine. Aggiungi i metadati (utilizzando le annotazioni in Java o i decorator in Python) ai tuoi codice sorgente. I metadati descrivono superficie delle API REST per la tua applicazione.
Per ulteriori informazioni, consulta Framework di endpoint.
Passaggi successivi
Guarda le funzionalità di Endpoints in azione eseguendo la Guida rapida per Endpoints, che utilizza gli script per eseguire il deployment di un'API di esempio in App Engine flessibile completamente gestito di Google Cloud.
Acquisisci familiarità con i passaggi del deployment con uno dei tutorial per l'opzione Endpoints che hai scelto:
Scopri di più su Endpoints ed ESP: