Cloud Endpoints Frameworks era precedentemente chiamato Endpoints. Per distinguere le due versioni, questa pagina si riferisce alla nuova versione come Endpoints Frameworks versione 2.0 e alla versione precedente come Endpoints versione 1.0. Questa pagina descrive come eseguire la migrazione di un'applicazione Cloud Endpoints versione 1.0 a Endpoints Frameworks versione 2.0. La migrazione consiste in una modifica della libreria e una modifica della configurazione dell'applicazione, ma non devi apportare modifiche al codice.
Vantaggi
Endpoints versione 2.0 offre una serie di vantaggi, tra cui:
- Latenza delle richieste ridotta.
- Migliore integrazione con le funzionalità di App Engine, come i domini personalizzati.
- Nuove funzionalità di gestione delle API.
Endpoints Frameworks versione 2.0 non influisce sulle interfacce della tua API. I client esistenti continuano a funzionare dopo la migrazione senza modifiche al codice lato client.
Panoramica delle funzioni
Le seguenti funzionalità sono compatibili con le versioni precedenti di Endpoints 1.0:
- Protocollo JSON-REST, utilizzato da tutte le librerie client Google
- Servizio di rilevamento
- Tutte le funzionalità di autenticazione esistenti (OAuth2/OpenID Connect)
- Supporto della libreria client per i client generati
- CORS (per i chiamanti JavaScript che non utilizzano la libreria client JavaScript di Google)
- Explorer API
La suddivisione del traffico non è disponibile.
Funzionalità attualmente escluse
Le seguenti funzionalità non sono disponibili. Se hai bisogno di uno di questi, invia una richiesta di funzionalità.
- Protocollo JSON-RPC, necessario per i client iOS legacy. Per creare client iOS per l'API Endpoints Frameworks versione 2.0, ti consigliamo di utilizzare la libreria client Objective-C delle API di Google per le API REST.
- ETag automatiche
- Campi
kindautomatici - Integrazione con l'ambiente IDE
fieldsrisposte parziali- Creazione automatica del metodo API PATCH
Migrazione dalla versione 1.0 di Endpoints
Per eseguire la migrazione dalla versione 1.0:
Crea una sottocartella denominata
/libnella directory principale dell'applicazione.Installa la libreria dalla directory principale dell'applicazione:
pip install -t lib google-endpoints --ignore-installedRimuovi le voci
- name: endpointseversion 1.0dal fileapp.yamldella tua applicazione nella sezionelibraries. Ad esempio:libraries: - name: endpoints #Remove version: 1.0 #RemoveNella sezione
librariesdel fileapp.yaml, aggiungi quanto segue:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11Endpoints Frameworks richiede queste versioni delle librerie
pycryptoessl.Nella sezione
handlersdel fileapp.yaml, modifica la direttivaurlda- url: /_ah/spi/.*a- url: /_ah/api/.*.Nella directory principale dell'applicazione, crea o modifica un file denominato
appengine_config.pyper includere quanto segue:from google.appengine.ext import vendor vendor.add('lib')Controlla la stringa della versione dell'API. La stringa di versione, specificata nel decoratore
@endpoints.api(version='v1', ...), viene visualizzata nel percorso dell'API. Se specifichi una stringa di versione compatibile con lo standard SemVer, nel percorso della tua API viene visualizzato solo il numero di versione principale quando la implementi. Ad esempio, un'API chiamataechocon la versione2.1.0avrebbe un percorso come/echo/v2. Se aggiorni l'APIechoalla versione2.2.0ed esegui il deployment di una modifica compatibile con le versioni precedenti, il percorso rimane/echo/v2. In questo modo puoi aggiornare il numero di versione dell'API quando apporti una modifica compatibile con le versioni precedenti senza interrompere i percorsi esistenti per i tuoi client. Tuttavia, se aggiorni l'APIechoalla versione3.0.0(perché stai implementando una modifica che causa interruzioni), il percorso viene modificato in/echo/v3.Esegui di nuovo il deployment dell'applicazione Endpoints Frameworks.
Verifica di un nuovo deployment
Per verificare che il nuovo framework stia gestendo il traffico:
- Invia alcune richieste al nuovo deployment.
- Visita la pagina Cloud Logging per il tuo progetto.
- Se le richieste vengono visualizzate con percorsi che iniziano con
/_ah/api, significa che Endpoints Frameworks versione 2.0 ora gestisce la tua API. I log non devono mostrare richieste con percorsi che iniziano con/_ah/spi. Queste richieste indicano che il proxy Endpoints versione 1.0 continua a gestire le richieste.
Aggiunta della gestione delle API
Endpoints Frameworks versione 2.0 aggiunge funzionalità di gestione delle API, tra cui:
- Gestione delle chiavi API
- Condivisione delle API
- Autenticazione degli utenti
- Metriche delle API
- Log API
Per iniziare, vai alla pagina Introduzione a Endpoints Frameworks per Python.
Risoluzione dei problemi
Questa sezione descrive i comportamenti anomali comuni durante la migrazione a Endpoints Frameworks versione 2.0 e le soluzioni suggerite.
L'API restituisce errori 404, ma Explorer API elenca comunque le API correttamente
Quando esegui la migrazione a Endpoints Frameworks versione 2.0, devi rimuovere la vecchia configurazione di Endpoints versione 1.0. Se
la vecchia configurazione è ancora presente nella configurazione dell'applicazione, il
servizio Endpoints continua a trattare l'app come un'app di versione 1.0. Potresti visualizzare richieste nei log di App Engine inviate a /_ah/spi,
che generano errori HTTP 404 inviati al client.
Se presenti, rimuovi le seguenti righe dal file
app.yaml:handlers: - url: /_ah/spi/.* script: ...Assicurati che la sezione
handlersdel fileapp.yamlcontenga il percorso corretto:handlers: # The endpoints handler must be mapped to /_ah/api. - url: /_ah/api/.* script: ...
Messaggio di errore: ImportError: cannot import name locked_file
Ciò si verifica se le dipendenze contengono una versione della libreria oauth2client
incompatibile con App Engine. Consulta il
problema noto.