Aggiunta della gestione delle API

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

  1. Installa e inizializza gcloud CLI:

    Scarica e installa gcloud CLI

  2. Installa il componente gcloud che include: Estensione App Engine per Python:

    gcloud components install app-engine-python
    
  3. Aggiorna gcloud CLI:

    gcloud components update
    
  4. 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.

  5. 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
    
  6. 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

  1. 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 chiamato python-dev).

  2. Passa alla directory principale dell'API.

  3. Crea una sottodirectory /lib nella directory principale dell'API:

    mkdir lib
    
  4. 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

  1. Modifica il file del progetto app.yaml e aggiungi una sezione env_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 e YOUR_SERVICE_VERSION con l'ID configurazione del servizio sezione precedente. Con questa aggiunta al file app.yaml, Endpoints gestisce l'API rieseguire il deployment dell'applicazione.

  2. Esegui di nuovo il deployment dell'applicazione:

    gcloud app deploy
    
  3. 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.
    
  4. 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"
    }
    
  5. Effettua alcune richieste aggiuntive all'API.

  6. A visualizzare le metriche dell'API, apri gli Endpoint > pagina Servizi nella console Google Cloud per il tuo progetto:

    Vai alla pagina dei servizi Endpoints