Deployment delle API Cloud Endpoints su API Gateway
Cloud Endpoints è un sistema di gestione delle API che ti aiuta a proteggere, monitorare, analizzare e impostare le quote per le tue API. Endpoints utilizza Extensible Service Proxy (ESP) o Extensible Service Proxy V2 Beta (ESPv2 Beta) per ospitare le tue API.
Quando utilizzi Endpoints, hai tre opzioni per definire l'API:
- Cloud Endpoints per OpenAPI
- Cloud Endpoints per gRPC
- Cloud Endpoints Frameworks per l'ambiente standard di App Engine
Sviluppo di API con API Gateway
Sia Endpoints che API Gateway supportano le API descritte utilizzando la specifica OpenAPI, OpenAPI 2.0 o OpenAPI 3.x. Se hai utilizzato OpenAPI per definire le tue API Endpoints, significa che puoi anche eseguire il deployment delle tue API Endpoints su API Gateway.
Deployment delle specifiche OpenAPI di Endpoints su API Gateway
API Gateway supporta lo stesso formato e le stesse opzioni di definizione della specifica OpenAPI supportati da Cloud Endpoints per OpenAPI. Ciò significa che puoi utilizzare le stesse definizioni di sicurezza, quota e altre dalle specifiche OpenAPI di Endpoints per definire un'API in API Gateway.
L'unica differenza tra Endpoints e API Gateway è il modo in cui elaborano la proprietà host nella definizione della specifica OpenAPI:
- In Endpoints, imposta la proprietà
hostsulla parte del nome host dell'URL creato durante il deployment di ESP, dove ESP è il servizio utilizzato per ospitare l'API Endpoints. - In API Gateway, ometti
hosto impostalo sul nome DNS dell'API di cui è stato eseguito il deployment. I provider di API spesso lo impostano sul nome DNS quando condividono la specifica OpenAPI con i loro consumer di API. Tuttavia, API Gateway non applica il valore della proprietàhost.
Ad esempio, di seguito è riportata una parte di una definizione OpenAPI utilizzata da Endpoints per definire un'API per accedere a un servizio di backend di cui è stato eseguito il deployment su Cloud Run Functions:
OpenAPI 2.0
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: HOST schemes: - https ...
OpenAPI 3.x
openapi: 3.0.4 info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 servers: - url: https://HOST x-google-endpoint: {} ...
Quando utilizzi Endpoints per il deployment delle API:
Esegui il deployment di Vertex AI Search o ESPv2 Beta, che crea l'URL che utilizzi poi per accedere alle API di cui è stato eseguito il deployment. Ad esempio:
https://gateway-12345-uc.a.run.app
Modifica la specifica OpenAPI per impostare la proprietà
host(in OpenAPI 2.0) oservers.url(in OpenAPI 3.x) sul nome di dominio dell'URL di Vertex AI Search o ESPv2 Beta. Ad esempio:host: gateway-12345-uc.a.run.app
Esegui il deployment della definizione OpenAPI in Vertex AI Search o ESPv2 beta.
Accedi alla tua API utilizzando l'URL beta di Vertex AI Search o ESPv2. Nelle definizioni OpenAPI precedenti, l'elemento
pathsè impostato su/hello, quindi puoi accedere a questa API utilizzando il seguente URL:https://gateway-12345-uc.a.run.app/hello
Per utilizzare la stessa definizione API per creare una configurazione API per API Gateway,
puoi eliminare completamente la proprietà host o servers.url oppure lasciarla nel file.
API Gateway non applica il valore della proprietà host.
L'URL del gateway di cui è stato eseguito il deployment e, pertanto, l'URL che i client utilizzano per accedere all'API, viene definito quando crei il gateway, nel formato:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
dove GATEWAY_ID è il nome del gateway, HASH è il codice hash univoco generato durante il deployment dell'API e REGION_CODE è il codice della regioneGoogle Cloud in cui hai eseguito il deployment del gateway.
Dopo aver eseguito il deployment di un'API in un'istanza gateway, l'URL che utilizzi per accedere a /hello è:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Per saperne di più sul deployment delle API, consulta la sezione Modello di deployment del gateway API.
Per saperne di più sulla creazione della specifica OpenAPI per la definizione dell'API, consulta la panoramica di OpenAPI.