Per gestire l'API con Cloud Endpoints, hai tre opzioni a seconda di dove è ospitata l'API e del tipo di protocollo di comunicazione utilizzato:
- Cloud Endpoints per OpenAPI
- Cloud Endpoints per gRPC
- Cloud Endpoints Frameworks per l'ambiente standard di App Engine
Questa pagina descrive le opzioni di Endpoints per aiutarti a decidere qual è quella giusta per te.
Scelta di un'opzione di computing
Endpoints supporta diverse opzioni di computing Google Cloud che possono ospitare il codice di backend della tua API. Endpoints funziona con Extensible Service Proxy (ESP) o Extensible Service Proxy V2 (ESPv2) per fornire la gestione delle API. La tabella seguente riepiloga le opzioni di calcolo supportate:
| ESP per OpenAPI | ESP per gRPC | ESPv2 per OpenAPI | ESPv2 per gRPC | Framework di Endpoints | |
|---|---|---|---|---|---|
| App Engine ambiente standard di prima generazione |
Runtime Java 8 e Python 2.7 | ||||
| App Engine ambiente standard di seconda generazione |
|||||
| Ambiente flessibile di App Engine |
|||||
| Cloud Run Functions | |||||
| Cloud Run | |||||
| Knative serving | |||||
| Compute Engine | |||||
| GKE | |||||
| Kubernetes | |||||
| Altro nonGoogle Cloud |
Per un confronto delle funzionalità fornite da App Engine, GKE e Compute Engine, consulta Scelta di un'opzione di calcolo. Se stai pensando di utilizzare App Engine, devi scegliere l'ambiente standard o flessibile. Per un confronto tra i due ambienti, vedi Scelta di un ambiente App Engine.
Informazioni sulle limitazioni dell'opzione di computing
Endpoints per OpenAPI ed Endpoints per gRPC possono utilizzare ESP o ESPv2 come proxy. Per le piattaforme non serverless, ESP o ESPv2 viene implementato come container davanti all'applicazione o come sidecar con l'applicazione. Per le piattaforme serverless, come Cloud Run, Cloud Run Functions e App Engine, ESPv2 viene implementato 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, ESP raccoglie e segnala 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 consoleGoogle Cloud .
Limitazioni dell'ambiente standard di App Engine di prima generazione
Endpoints per l'ambiente standard di App Engine di prima generazione utilizzava storicamente Endpoints Frameworks, che supporta solo gli ambienti di runtime Java 8 e Python 2.7.
Poiché l'ambiente standard di App Engine non supportava i deployment multi-container durante lo sviluppo di Endpoints Frameworks, quest'ultimo non utilizza ESP. Al contrario, Endpoints Frameworks include un gateway API integrato che fornisce funzionalità di gestione API paragonabili a quelle fornite da ESP per Endpoints per OpenAPI ed Endpoints per gRPC.
Le API gRPC non sono supportate su App Engine o Cloud Run Functions
gRPC è un framework di chiamata di procedura remota (RPC) che può essere eseguito in 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à principale di gRPC è lo streaming bidirezionale con trasporto basato su HTTP/2.
App Engine e Cloud Run Functions non supportano HTTP/2.
Linguaggi di programmazione supportati
- La specifica OpenAPI è una specifica indipendente dal linguaggio. Puoi implementare l'API in qualsiasi linguaggio di programmazione.
- gRPC fornisce il
compilatore di protocol buffer,
protoc, per molti linguaggi di programmazione principali: C++, C#, Objective-C (per iOS), Dart, Go, Java (incluso il supporto per Android), Node.js, Python e Ruby. Per l'elenco più aggiornato, consulta le Domande frequenti su gRPC. - Endpoints Frameworks supporta solo Java 8 e Python 2.7.
Descrivere l'API
Le opzioni di Endpoints offrono diversi modi per descrivere la tua API.
Endpoints per OpenAPI
L'OpenAPI Initiative è un'iniziativa a livello di settore per standardizzare la descrizione delle API REST. Endpoints supporta le API descritte utilizzando OpenAPI 2.0 e OpenAPI 3.x della specifica OpenAPI (in precedenza la specifica Swagger). Per saperne di più, consulta Versioni di OpenAPI supportate. Descrivi la superficie della tua 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 saperne di più, consulta Endpoint per OpenAPI.
Endpoints per gRPC
Con gRPC, definisci la struttura dei dati che vuoi serializzare in un file proto: si tratta di un normale file di testo con estensione .proto. Definisci anche
la
superficie
della tua API nei file proto, con i parametri del metodo RPC e i tipi restituiti
specificati come messaggi del buffer di protocollo. Se non hai familiarità con gRPC, consulta
Che cos'è gRPC?
nella documentazione di gRPC.
Per saperne di più, consulta Endpoint per gRPC.
Endpoints Frameworks
Endpoints Frameworks è un framework web per gli ambienti di runtime standard Python 2.7 e Java 8 di App Engine. Aggiungi metadati (utilizzando annotazioni in Java o decoratori in Python) al codice sorgente. I metadati descrivono la superficie delle API REST per la tua applicazione.
Per saperne di più, consulta Framework degli endpoint.
Passaggi successivi
Scopri le funzionalità di Endpoints in azione seguendo la guida rapida per Endpoints, che utilizza script per eseguire il deployment di un'API di esempio nell'ambiente flessibile App Engine.
Acquisisci familiarità con i passaggi di deployment seguendo uno dei tutorial per l'opzione Endpoints che hai scelto:
Scopri di più su Endpoints ed ESP: