Cloud Endpoints Frameworks offre funzionalità di gestione delle API paragonabili a le caratteristiche Extensible Service Proxy (ESP) fornisce per Cloud Endpoints. Endpoints Frameworks include un integrato Gateway API che intercetta tutte le richieste ed esegue i controlli necessari, come prima di inoltrare la richiesta al backend dell'API. Quando il backend risponde, Endpoints Frameworks raccoglie e segnala la telemetria. Puoi visualizza le metriche per la tua API negli Endpoint > nella pagina Servizi nel nella console Google Cloud.
Le funzionalità di gestione delle API disponibili in Endpoints Frameworks includono:
Per poter gestire l'API da Endpoints, devi eseguire il deployment un documento OpenAPI che descriva l'API utilizzando la versione 2.0 di Specifica OpenAPI. Questa pagina descrive come generare ed eseguire il deployment di un documento OpenAPI che consente a Endpoints di gestire l'API.
Se non aggiungi la gestione delle API, l'API continua a gestire le richieste, ma L'API non viene visualizzata negli Endpoint > nella pagina Servizi nel nella console Google Cloud e la funzionalità Gli endpoint, come il logging, il monitoraggio e l'impostazione delle quote, disponibili.
Installazione e configurazione del software richiesto
Se non lo hai già fatto, installa e configura Google Cloud CLI per Python e aggiungi la libreria Python di Endpoints Frameworks all'API directory del progetto, in modo che venga caricato con il codice API al momento del deployment
Installa e configura gcloud CLI per Python
Installa e inizializza gcloud CLI:
Installa il componente
gcloud
che include: Estensione App Engine per Python:gcloud components install app-engine-python
Aggiorna gcloud CLI:
gcloud components update
Assicurati che gcloud CLI sia autorizzato ad accedere ai tuoi dati su Google Cloud:
gcloud auth login
Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.
Imposta il progetto predefinito sul tuo ID progetto. Sostituisci
YOUR_PROJECT_ID
con il tuo ID progetto Google Cloud.gcloud config set project YOUR_PROJECT_ID
Per Linux, imposta la variabile di ambiente
ENDPOINTS_GAE_SDK
sul percorso di la tua cartella dell'SDK di App Engine:PATH_TO_CLOUD_SDK/platform/google_appengine
Sostituisci
PATH_TO_CLOUD_SDK
con l'output di il seguente comando:gcloud info --format="value(installation.sdk_root)"
Aggiungi la libreria Python di Endpoints Frameworks
Assicurati di poter compilare le estensioni C per Python.
Windows: è richiesto Microsoft Visual C++ 9.0 o versioni successive. Puoi scarica il compilatore Microsoft Visual C++ per Python 2.7 dal Centro download Microsoft
Altri sistemi operativi: a seconda del sistema operativo, è possibile installare strumenti di compilazione (a volte in un pacchetto chiamato
build-essential
) e/o le intestazioni di sviluppo Python (a volte in un chiamatopython-dev
).
Passa alla directory principale dell'API.
Crea una sottodirectory
/lib
nella directory principale dell'API:mkdir lib
Installa la libreria:
pip install -t lib google-endpoints --ignore-installed
Genera il documento OpenAPI
Dalla directory principale dell'API, genera un documento OpenAPI utilizzando il framework i nostri strumenti. Ad esempio:
Classe singola
Nel comando seguente, sostituisci YOUR_PROJECT_ID
con
l'ID progetto Google Cloud.
python lib/endpoints/endpointscfg.py get_openapi_spec main.EchoApi \ --hostname YOUR_PROJECT_ID.appspot.com
Ignorare gli avvisi visualizzati.
Più corsi
Puoi elencare più classi nella riga di comando. Endpoint genera un documento OpenAPI per ogni combinazione di nome/versione dell'API.
Se vuoi eseguire il deployment di più classi API con nomi API diversi come parte
di un singolo servizio, devi aggiungere anche il flag --x-google-api-name
.
L'attivazione di questo flag aggiunge ulteriori limitazioni ai nomi delle API. In particolare,
i nomi devono corrispondere all'espressione regolare [a-z][a-z0-9]{0,39}
; cioè
il nome deve contenere da 1 a 40 caratteri, che possono essere tutti minuscoli
caratteri alfabetici o numeri, ma il primo carattere non deve
essere un numero. Ad esempio:
Nel comando seguente, sostituisci YOUR_PROJECT_ID
con l'ID progetto Google Cloud.
python lib/endpoints/endpointscfg.py get_openapi_spec main.FooApi main.BarApi \ --hostname YOUR_PROJECT_ID.appspot.com \ --x-google-api-name
Ignorare gli avvisi visualizzati.
Endpoints utilizza il testo specificato nel campo hostname
come nome del servizio. Quando esegui il deployment dell'API in App Engine,
una voce DNS con un nome nel formato
Creazione di YOUR_PROJECT_ID.appspot.com
completata
automaticamente.
Esegui il deployment del documento OpenAPI
Classe singola
gcloud endpoints services deploy echov1openapi.json
Più corsi
Se disponi di più documenti OpenAPI, elencali tutti nella riga di comando. Ad esempio:
gcloud endpoints services deploy foov1openapi.json barv1openapi.json
La prima volta che esegui il deployment del tuo documento (o dei tuoi documenti OpenAPI), una nuova
Il servizio Endpoints viene creato con il nome
YOUR_PROJECT_ID.appspot.com
.
Al termine, una riga simile alla seguente mostra il servizio e il nome del servizio:
Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com
Nell'esempio precedente, 2017-02-13r0
è la configurazione del servizio
ID. L'ID configurazione del servizio è costituito da un timbro della data seguito da un
il numero di revisione. Se esegui nuovamente il deployment del documento OpenAPI, la revisione
viene incrementato nell'ID configurazione del servizio.
Se devi visualizzare di nuovo l'ID configurazione del servizio, esegui questo comando:
ma sostituisci YOUR_PROJECT_ID
con l'ID progetto
del tuo progetto Google Cloud:
gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
Puoi creare il tuo documento OpenAPI ed eseguirne il deployment, anziché
utilizzandone uno generato. Devi solo sostituire echov1openapi.json
sopra con il
al tuo documento OpenAPI. Per ulteriori informazioni
sulla scrittura di un modello OpenAPI
documento, vedi
Panoramica di OpenAPI.
Esegui di nuovo il deployment dell'API ed esegui il test
Modifica il file del progetto
app.yaml
e aggiungi una sezioneenv_variables
come che segue:env_variables: ENDPOINTS_SERVICE_NAME: YOUR_PROJECT_ID.appspot.com ENDPOINTS_SERVICE_VERSION: YOUR_SERVICE_VERSION
Sostituisci
YOUR_PROJECT_ID
con ID progetto Google Cloud eYOUR_SERVICE_VERSION
con l'ID configurazione del servizio sezione precedente. Con questa aggiunta al fileapp.yaml
, Endpoints gestisce l'API rieseguire il deployment dell'applicazione.Esegui di nuovo il deployment dell'applicazione:
gcloud app deploy
Attendi qualche istante affinché il deployment abbia esito positivo, ignorando l'avviso messaggi. Al termine del deployment, verrà visualizzato un messaggio simile viene visualizzato quanto segue:
File upload done. Updating service [default]...done.
Verifica se il deployment è riuscito, ad esempio utilizzando curl:
curl --request POST \ --header "Content-Type: application/json" \ --data '{"content":"echo"}' \ https://YOUR_PROJECT_ID.appspot.com/_ah/api/echo/v1/echo?n=2
Sostituisci
echo
con il nome dell'API.I risultati dovrebbero essere simili a questi:
{ "content": "echo echo" }
Effettua alcune richieste aggiuntive all'API.
A visualizzare le metriche dell'API, apri gli Endpoint > pagina Servizi nella console Google Cloud per il tuo progetto: