Definieren Sie einen API-Server, der die von Ihnen erstellte(n) API(s) verwendet. Cloud Endpoints Frameworks für Python implementiert die standardmäßige Schnittstelle Web Server Gateway Interface (WSGI), um Anforderungen an die API für die Methoden im Code weiterzuleiten.
Wie bei jeder in App Engine ausgeführten Anwendung müssen Sie eine Datei namens app.yaml erstellen, in der Sie die Einstellungen der App Engine-Anwendung konfigurieren. Wenn Sie den Webserver definieren möchten, müssen Sie Änderungen in der Datei app.yaml vornehmen.
Einen Webserver definieren:
- Erstellen Sie ein Python-Modul wie - main.pyund auf der obersten Ebene das Objekt- endpoints.api_server:- Der Code - api = endpoints.api_server([EchoApi])erstellt eine WSGI-Anwendung, mit der API-Anfragen zu den Methoden in der Klasse- EchoAPIweitergeleitet werden.- Sie können eine Liste von - remote.Service-Objekten, die Sie beim Erstellen der API definiert haben, für- endpoints.api_serverbereitstellen. Wenn die API in mehreren Klassen implementiert ist, dann ist das Objekt- remote.Serviceeine Sammlung von Klassen, wie unter Auf mehrere Klassen abgestimmte API erstellen beschrieben.- Das Erstellen eines eigenen Moduls für das Objekt - endpoints.api_serverhängt davon ab, ob Sie eine einzelne API oder mehrere APIs erstellt haben.- Wenn Sie mehrere APIs (mit mehreren untergeordneten Klassen - remote.Service) erstellt haben und diese APIs in mehreren Dateien definiert sind, sollten Sie ein eigenes Modul für das Objekt- endpoints.api_servererstellen, damit Sie alle Klassendateien importieren können.
- Wenn Sie eine einzelne API erstellt haben, können Sie den erforderlichen Code - endpoints.api_serverin das Modul einfügen, in dem Sie Ihre API definieren, da Sie keine anderen Klassen importieren müssen.
 
- Ordnen Sie in der Datei - app.yamlden gerade erstellen Webserver dem Cloud Endpoints-Standort so zu:- Dabei ist - maindas Python-Modul, in dem Sie das Objekt- endpoints.api_serverdefiniert haben.
API über anderen Pfad bereitstellen
Optional: So stellen Sie die API über einen anderen Pfad (z. B. /api/) bereit:
- Ändern Sie den Decorator: - @endpoints.api(name='echo', version='v1', base_path='/api/')
- Ändern Sie in der Datei - app.yamlden Abschnitt- handlers:- handlers: - url: /api/.* script: main.api
Logging mit Endpoint Frameworks for Python
In Endpoints Frameworks for Python wird das standardmäßige Python-Logging-Modul verwendet, um Informationen zum Status der Anwendung und zum Lebenszyklus der Anfrage zu protokollieren. Weitere Informationen zu App Engine-Logs und wie sie angezeigt werden, finden Sie in der Dokumentation zu App Engine unter Anwendungslogs lesen und schreiben.
Das Python-Logging-Modul bietet vordefinierte Logebenen. In aufsteigender Reihenfolge der Schweregrade lauten die Logebenen so:
| Logebene | Beschreibung | 
|---|---|
| DEBUG | Bietet detaillierte Logs. Normalerweise wird diese Stufe nur zur Fehlerbehebung festgelegt. | 
| INFO | Die standardmäßige Logebene für Endpoints Frameworks. Ermöglicht das Verfolgen des Fortschritts Ihrer Anwendung auf übergeordneter Ebene. | 
| WARNING | Warnt Sie bei unerwarteten Ereignissen. Die Anwendung kann jedoch wiederhergestellt und trotzdem normal ausgeführt werden. | 
| ERROR | Warnt Sie bei einem Fehler, der zu Funktionsverlust führen kann, obwohl die Anwendung weiterhin ausgeführt wird. | 
| CRITICAL | Warnt Sie bei einem schwerwiegenden Fehler oder Ereignis, wodurch die Anwendung möglicherweise heruntergefahren wird. | 
Logger existieren in einer durch Punkte getrennten Hierarchie. Der Logger endpoints.api_config ist beispielsweise dem Logger endpoints untergeordnet. Mit dieser Hierarchie können Sie genau steuern, welche Logs ausgegeben oder unterdrückt werden. In der Regel ändern Sie nur die beiden Stamm-Logger für Endpoints Frameworks: endpoints und endpoints_management.
DEBUG-Logging für Endpoints Frameworks aktivieren
Endpoints Frameworks legt die Logger so fest, dass nur Logeinträge mit der Logebene INFO oder höher aufgezeichnet werden, damit der Logreader nicht überlastet wird. Nachdem Endpoints Frameworks in das Modul importiert wurde, können Sie die Logebenen jederzeit so ändern:
import logging
logging.getLogger('endpoints').setLevel(logging.DEBUG)
logging.getLogger('endpoints_management').setLevel(logging.DEBUG)
Die Methode setLevel legt die Mindestlogebene für den Logger fest.