Cloud Endpoints Frameworks hieß früher Endpoints. Damit Sie zwischen den zwei Versionen unterscheiden können, wird auf dieser Seite die neue Version als Endpoints Frameworks Version 2.0 und die ältere als Endpoints Version 1.0 bezeichnet. Auf dieser Seite wird beschrieben, wie Sie eine Cloud Endpoints Version 1.0-Anwendung zu Endpoints Frameworks Version 2.0 migrieren. Bei der Migration werden eine Bibliothek und die Anwendungskonfiguration geändert, ein Umschreiben des Codes ist jedoch nicht erforderlich.
Vorteile
Endpoints Version 2.0 bietet diverse Vorteile:
- Geringere Anfragelatenz
- Bessere Integration von App Engine-Funktionen (wie benutzerdefinierte Domains)
- Neue Funktionen für die API-Verwaltung
Endpoints Frameworks Version 2.0 hat keine Auswirkungen auf die Schnittstellen zu Ihrer API. Bereits bestehende Clients arbeiten nach der Migration ohne clientseitige Änderungen des Codes regulär weiter.
Funktionen
Die folgenden Funktionen sind zu Endpoints Version 1.0 abwärtskompatibel:
- JSON-REST-Protokoll, das von allen Google Clientbibliotheken verwendet wird
- Discovery-Dienst
- Alle bestehenden Authentifizierungsfunktionen (OAuth2/OpenID Connect)
- Unterstützung der Clientbibliotheken für generierte Clients
- CORS (für JavaScript-Caller, die nicht die Google JavaScript-Clientbibliothek nutzen)
- API Explorer
Traffic-Aufteilung ist nicht verfügbar.
Derzeit ausgeschlossene Funktionen
Folgende Funktionen sind nicht verfügbar. Wenn Sie eine dieser Funktionen benötigen, senden Sie eine Funktionsanfrage.
- JSON-RPC-Protokoll, das für Legacy-iOS-Clients erforderlich ist. Zum Erstellen von iOS-Clients für Ihre Endpoints Frameworks 2.0 API wird empfohlen, die Google API-Clientbibliothek für Objective-C für REST APIs zu verwenden.
- Automatische ETags
- Automatische
kind
-Felder - IDE-Einbindung
- Teilantworten für
fields
- Automatische Erstellung von PATCH-API-Methoden
Von Endpoints 1.0 migrieren
Von Version 1.0 migrieren:
Erstellen Sie im Hauptverzeichnis Ihrer Anwendung einen Unterordner mit dem Namen
/lib
.Installieren Sie die Bibliothek aus dem Hauptverzeichnis Ihrer Anwendung:
pip install -t lib google-endpoints --ignore-installed
Entfernen Sie die Einträge
- name: endpoints
undversion 1.0
aus der Dateiapp.yaml
Ihrer Anwendung im Abschnittlibraries
. Beispiel:libraries: - name: endpoints #Remove version: 1.0 #Remove
Im Abschnitt
libraries
in der Dateiapp.yaml
fügen Sie Folgendes hinzu:libraries: - name: pycrypto version: 2.6 - name: ssl version: 2.7.11
Für Endpoints Frameworks sind diese Versionen der Bibliotheken
pycrypto
undssl
erforderlich.Ändern Sie im Abschnitt
handlers
in derapp.yaml
-Datei dieurl
-Anleitung von- url: /_ah/spi/.*
an- url: /_ah/api/.*
.Erstellen/ändern Sie im Stammverzeichnis Ihrer Anwendung die Datei
appengine_config.py
, die Folgendes enthalten muss:from google.appengine.ext import vendor vendor.add('lib')
Überprüfen Sie Ihren API-Versionsstring. Der im Decorator
@endpoints.api(version='v1', ...)
angegebene Versionsstring wird im Pfad Ihrer API angezeigt. Wenn Sie einen mit dem SemVer-Standard kompatiblen Versionsstring angeben, wird beim Bereitstellen der API nur die Hauptversionsnummer im API-Pfad angezeigt. So hat beispielsweise eine API mit dem Namenecho
und der Version2.1.0
einen Pfad wie/echo/v2
. Wenn Sie dieecho
API auf Version2.2.0
aktualisieren und eine abwärtskompatible Änderung vornehmen, bleibt der Pfad/echo/v2
bestehen. Dadurch können Sie die API-Versionsnummer aktualisieren, wenn Sie eine abwärtskompatible Änderung vornehmen, ohne bestehende Pfade für Ihre Clients zu unterbrechen. Wenn Sie jedoch dieecho
API auf Version3.0.0
aktualisieren, weil Sie eine nicht abwärtskompatible Änderung vornehmen, ändert sich der Pfad in/echo/v3
.Stellen Sie Ihre Endpoints Frameworks-Anwendung noch einmal bereit.
Neue Bereitstellung verifizieren
So überprüfen Sie, ob das neue Framework Traffic bereitstellt:
- Senden Sie einige Anfragen an die neue Bereitstellung.
- Öffnen Sie die Cloud Logging-Seite Ihres Projekts.
- Wenn Anfragen mit Pfaden angezeigt werden, die mit
/_ah/api
beginnen, stellt Endpoints Frameworks Version 2.0 jetzt Traffic an Ihre API bereit. Die Logs sollten keine Anfragen mit Pfaden enthalten, die mit/_ah/spi
beginnen. Diese Anfragen weisen darauf hin, dass der Endpoints Version 1.0-Proxy weiterhin Anfragen bedient.
API-Verwaltung hinzufügen
Endpoints Frameworks Version 2.0 bietet auch Funktionen für die API-Verwaltung:
- Verwaltung von API-Schlüsseln
- Teilen von APIs
- Nutzerauthentifizierung
- API-Messwerte
- API-Logs
Gehen Sie zur Seite Erste Schritte mit Endpoints Frameworks für Python, um direkt loszulegen.
Fehlerbehebung
In diesem Abschnitt werden häufige Fehler beschrieben, die bei der Migration zu Endpoints Frameworks Version 2.0 auftreten können, und entsprechende Lösungen vorgeschlagen.
API gibt 404
-Fehler zurück, API Explorer listet APIs jedoch weiterhin korrekt auf
Bei der Migration zu Endpoints Frameworks Version 2.0 müssen Sie die alte Konfiguration von Endpoints Version 1.0 entfernen. Wenn die alte Konfiguration noch in der Anwendungskonfiguration vorhanden ist, behandelt der Endpoints-Dienst die Anwendung weiterhin als Anwendung der Version 1.0.
Unter Umständen sehen Sie in den App Engine-Logs Anfragen, die an /_ah/spi
gesendet werden. Dies hat zur Folge, dass HTTP 404
-Fehler an den Client gesendet werden.
Entfernen Sie die folgenden Zeilen aus der Datei
app.yaml
, falls sie vorhanden sind:handlers: - url: /_ah/spi/.* script: ...
Achten Sie darauf, dass der Abschnitt
handlers
in Ihrerapp.yaml
-Datei über den korrekten Pfad verfügt:handlers: # The endpoints handler must be mapped to /_ah/api. - url: /_ah/api/.* script: ...
Fehlermeldung: ImportError: cannot import name locked_file
Diese Fehlermeldung tritt auf, wenn Ihre Abhängigkeiten eine Version der Bibliothek oauth2client
enthalten, die mit App Engine nicht kompatibel ist. Siehe Bekannte Probleme.