Devi definire un server web che utilizzi l'API o le API che hai creato. Cloud Endpoints Frameworks for Python implementa la Web Server Gateway Interface (WSGI) standard per instradare le richieste all'API ai metodi nel codice.
Come per ogni applicazione eseguita su App Engine, devi creare un file denominato app.yaml
in cui configurare le impostazioni dell'app App Engine. Per definire il server web,
apporti modifiche al file app.yaml
.
Per definire un server web:
Crea un modulo Python, ad esempio
main.py
, e crea un oggettoendpoints.api_server
al livello più alto:Il codice
api = endpoints.api_server([EchoApi])
crea un'applicazione WSGI che instrada le richieste API ai metodi della classeEchoAPI
.Puoi fornire un elenco di oggetti
remote.Service
(che hai definito quando hai creato l'API) aendpoints.api_server
. Se hai un'API implementata in diverse classi, l'oggettoremote.Service
è una raccolta di classi come descritto in Creare un'API implementata con più classi.La creazione di un modulo separato per l'oggetto
endpoints.api_server
dipende dalla creazione di una singola API o di più API.Se hai creato più API (utilizzando più sottoclassi
remote.Service
) definite in più file, ti consigliamo di creare un modulo separato per l'oggettoendpoints.api_server
in modo da poter importare tutti i file della classe.Se hai creato una singola API, puoi aggiungere il codice
endpoints.api_server
richiesto al modulo in cui definisci l'API, perché non devi importare altre classi.
Nel file
app.yaml
, mappa il server web appena creato alla posizione di Cloud Endpoints come segue:dove
main
è il modulo Python in cui hai definito l'oggettoendpoints.api_server
.
Gestione dell'API da un percorso diverso
(Facoltativo) Per pubblicare l'API da un percorso diverso, ad esempio /api/
:
Modifica il decorator:
@endpoints.api(name='echo', version='v1', base_path='/api/')
Modifica la sezione
handlers
nel fileapp.yaml
:handlers: - url: /api/.* script: main.api
Logging nei framework di Endpoints per Python
Endpoints Frameworks per Python utilizza il modulo di logging Python standard per registrare informazioni sullo stato dell'applicazione e sul ciclo di vita delle richieste. Per scoprire di più sui log di App Engine e su come visualizzarli, consulta Lettura e scrittura dei log delle applicazioni nella documentazione di App Engine.
Il modulo di logging Python fornisce livelli di log predefiniti. In ordine crescente di gravità, i livelli di log sono:
Livello di log | Descrizione |
---|---|
DEBUG |
Fornisce log dettagliati. In genere questo livello viene impostato soltanto per la risoluzione di un problema. |
INFO |
Il livello di log predefinito per Endpoints Frameworks. Consente di tracciare lo stato di avanzamento dell'applicazione ad alto livello. |
WARNING |
Ti avvisa che si è verificato un evento imprevisto, ma l'applicazione può recuperare ed eseguire normalmente. |
ERROR |
Ti avvisa che si è verificato un errore che potrebbe causare la perdita di funzionalità, ma l'applicazione è ancora in esecuzione. |
CRITICAL |
Ti avvisa che si è verificato un errore o un evento grave che potrebbe causare l'arresto dell'applicazione. |
I logger esistono in una gerarchia separata da punti. Ad esempio, il logger endpoints.api_config
è un registratore secondario del logger endpoints
. Questa gerarchia ti offre un controllo preciso su quali log vengono emessi o eliminati. In genere,
vengono modificati solo i due logger principali per Endpoints Framework:
endpoints
e endpoints_management
.
Abilita il logging di DEBUG
per Endpoints Frameworks
Per evitare di sovraccaricare il lettore di log, Endpoints Frameworks imposta i log in modo che registrino solo le voci di log con livello di log INFO
o superiore. In qualsiasi momento dopo l'importazione di Endpoints Frameworks nel modulo, puoi modificare il livello di log come segue:
import logging
logging.getLogger('endpoints').setLevel(logging.DEBUG)
logging.getLogger('endpoints_management').setLevel(logging.DEBUG)
Il metodo setLevel
imposta il livello minimo di log per il logger.