Devi definire un server web che utilizzi l' API o le API che hai creato. Cloud Endpoints Frameworks per Python implementa lo standard Web Server Gateway Interface (WSGI) per instradare le richieste alla tua API ai metodi nel tuo codice.
Come per ogni applicazione in esecuzione su App Engine, devi creare un file
denominato app.yaml in cui configuri le impostazioni dell'app App Engine. Per definire il server web, devi apportare modifiche al file app.yaml.
Per definire un server web:
Crea un modulo Python, ad esempio
main.py, e crea un oggettoendpoints.api_serverdi primo livello:Il codice
api = endpoints.api_server([EchoApi])crea un'applicazione WSGI che instrada le richieste API ai metodi nella classeEchoAPI.Puoi fornire un elenco di
remote.Serviceoggetti (che hai definito quando hai creato l'API) aendpoints.api_server. Se hai un'API implementata in più 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_serverdipende dalla creazione di una o 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_serverin modo da poter importare tutti i file di classe.Se hai creato una singola API, puoi aggiungere il codice
endpoints.api_serverrichiesto al modulo in cui definisci l'API perché non devi importare altre classi.
Nel file
app.yaml, mappa il server web appena creato alla località Cloud Endpoints come segue:dove
mainè il modulo Python in cui hai definito l'oggettoendpoints.api_server.
Pubblicare l'API da un percorso diverso
(Facoltativo) Per pubblicare l'API da un percorso diverso, ad esempio /api/:
Modifica il decoratore:
@endpoints.api(name='echo', version='v1', base_path='/api/')Modifica la sezione
handlersnel fileapp.yaml:handlers: - url: /api/.* script: main.api
Logging in Endpoints Frameworks per Python
Endpoints Frameworks per Python utilizza il modulo di logging Python standard per registrare informazioni su lo stato dell'applicazione e il ciclo di vita delle richieste. Per saperne di più sui log di App Engine e su come visualizzarli, consulta Leggere e scrivere i 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 solo quando si risolve un problema. |
INFO |
Il livello di log predefinito per Endpoints Frameworks. Consente di monitorare l'avanzamento dell'applicazione a un livello elevato. |
WARNING |
Ti avvisa che si è verificato un evento imprevisto, ma l'applicazione può ripristinarsi e continuare a essere eseguita normalmente. |
ERROR |
Ti avvisa che si è verificato un errore che potrebbe causare una perdita di funzionalità, ma l'applicazione è ancora in esecuzione. |
CRITICAL |
Ti avvisa che si è verificato un evento o un errore grave che potrebbe causare la disattivazione dell'applicazione. |
I logger esistono in una gerarchia separata da punti. Ad esempio, il logger
endpoints.api_config è un figlio del logger endpoints. Questa gerarchia ti consente di controllare con precisione quali log vengono emessi o eliminati. In genere,
modifichi solo i due logger radice per Endpoints Frameworks:
endpoints e endpoints_management.
Attivare il logging DEBUG per Endpoints Frameworks
Per evitare di sovraccaricare il lettore di log, Endpoints Frameworks imposta i logger in modo che registrino solo le voci di log con il 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 di log minimo per il logger.