Zu Cloud Endpoints Frameworks Version 2.0 migrieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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.
Ü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 Namen echo und der Version 2.1.0 einen Pfad wie /echo/v2. Wenn Sie die echo API auf Version 2.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 die echo API auf Version 3.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:
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 Ihrer app.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.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[[["\u003cp\u003eEndpoints Frameworks version 2.0 is a migration from the older Endpoints version 1.0, requiring a library change and application configuration update, without needing code alterations.\u003c/p\u003e\n"],["\u003cp\u003eMigrating to Endpoints Frameworks version 2.0 offers benefits such as reduced request latency, improved App Engine integration, and new API management capabilities, while maintaining backward compatibility with existing client interfaces.\u003c/p\u003e\n"],["\u003cp\u003eThe migration process involves creating a \u003ccode\u003e/lib\u003c/code\u003e subfolder, installing the \u003ccode\u003egoogle-endpoints\u003c/code\u003e library, modifying the \u003ccode\u003eapp.yaml\u003c/code\u003e file to remove old Endpoints entries and include new library dependencies, and updating the \u003ccode\u003eurl\u003c/code\u003e directive to \u003ccode\u003e/_ah/api/.*\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eEndpoints Frameworks version 2.0 supports various features like JSON-REST protocol, Discovery service, and OAuth2/OpenID Connect authentication, but excludes features like JSON-RPC protocol and automatic ETags.\u003c/p\u003e\n"],["\u003cp\u003eVerifying a successful migration to Endpoints Frameworks version 2.0 involves checking the Cloud Logging for requests with paths beginning with \u003ccode\u003e/_ah/api\u003c/code\u003e, confirming that no requests start with \u003ccode\u003e/_ah/spi\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Migrating to Cloud Endpoints Frameworks version 2.0\n\nCloud Endpoints Frameworks was formerly called Endpoints. To\ndistinguish between the two versions, this page refers to the new version as\nEndpoints Frameworks version 2.0, and the older version as\nEndpoints version 1.0. This page describes how to migrate an\nCloud Endpoints version 1.0 application to\n[Endpoints Frameworks version 2.0](/endpoints/docs/frameworks/python).\nThe migration consists of a library change and an application configuration\nchange, but you don't have to make any changes to your code.\n\nBenefits\n--------\n\nEndpoints version 2.0 brings a number of benefits, including:\n\n- Reduced request latency.\n- Better integration with App Engine features, such as custom domains.\n- New API management features.\n\nEndpoints Frameworks version 2.0 doesn't affect the interfaces to your\nAPI. Existing clients continue to work after migration without any client-side\ncode changes.\n\nFeature overview\n----------------\n\nThe following features are backward compatible with Endpoints\nversion 1.0:\n\n- JSON-REST protocol, which is used by all Google client libraries\n- Discovery service\n- All existing authentication features (OAuth2/OpenID Connect)\n- Client library support for generated clients\n- CORS (for JavaScript callers not using Google JavaScript client library)\n- API Explorer\n\nTraffic splitting is unavailable.\n\nCurrently excluded features\n---------------------------\n\nThe following features are unavailable. If you require any of these,\nplease submit a\n[feature request](https://github.com/cloudendpoints/endpoints-python/issues).\n\n- JSON-RPC protocol, which is required for legacy iOS clients. To create iOS clients for your Endpoints Frameworks version 2.0 API, we recommend that you use [Google APIs Objective-C client library for REST APIs](https://github.com/google/google-api-objectivec-client-for-rest/wiki).\n- Automatic ETags\n- Automatic `kind` fields\n- IDE integration\n- `fields` partial responses\n- Automatic PATCH API method creation\n\nMigrating from Endpoints version 1.0\n------------------------------------\n\n| **Important:** You must download the linked packages and import them into your application. You must remove the old dependencies.\n\nTo migrate from version 1.0:\n\n1. Create a subfolder named `/lib` in your application's main directory.\n\n2. Install the library from your application's main directory:\n\n pip install -t lib google-endpoints --ignore-installed\n\n3. Remove the `- name: endpoints` and `version 1.0` entries from your\n application's `app.yaml` file under the `libraries` section. For example:\n\n libraries:\n - name: endpoints #Remove\n version: 1.0 #Remove\n\n4. In the `libraries` section in the `app.yaml` file, add the following:\n\n libraries:\n - name: pycrypto\n version: 2.6\n - name: ssl\n version: 2.7.11\n\n Endpoints Frameworks requires these versions of the `pycrypto` and\n `ssl` libraries.\n5. In the `handlers` section in the `app.yaml` file, change the `url` directive\n from `- url: /_ah/spi/.*` to `- url: /_ah/api/.*`.\n\n6. In the root directory of your application, create or modify a file named\n `appengine_config.py` to include the following:\n\n from google.appengine.ext import vendor\n\n vendor.add('lib')\n\n7. Check your API version string. Your version string, specified in the\n `@endpoints.api(version='v1', ...)` decorator, appears in your API's path.\n If you specify a version string compatible with the\n [SemVer standard](https://semver.org/spec/v2.0.0.html),\n only the major version number appears in your API's path when you deploy\n your API. For example, an API called `echo` with version `2.1.0` would\n have a path such as `/echo/v2`. If you update the `echo` API to version\n `2.2.0` and deploy a backwards-compatible change, the path remains `/echo/v2`.\n This allows you to update the API version number when you make a\n backwards-compatible change without breaking existing paths for your clients.\n But if you update the `echo` API to version `3.0.0` (because you are\n deploying a breaking change), the path is changed to `/echo/v3`.\n\n8. Redeploy your Endpoints Frameworks application.\n\n | **Note** : When migrating, you must deploy to a new App Engine version. This is done automatically if you don't specify a version. See [Known Issues](/endpoints/docs/frameworks/known-issues#endpoints_frameworks_migration).\n\n \u003cbr /\u003e\n\n### Verifying a new deployment\n\nTo verify that the new framework is serving traffic:\n\n1. Send some requests to the new deployment.\n2. Visit the Cloud Logging page for your project. \n\n [Go to the Logs Explorer page](https://console.cloud.google.com/logs/query)\n3. If requests are shown with having paths beginning with `/_ah/api`, then Endpoints Frameworks version 2.0 is now serving your API. The logs shouldn't show any requests with paths beginning with `/_ah/spi`. These requests indicate that the Endpoints version 1.0 proxy is still serving requests.\n\nAdding API management\n---------------------\n\nEndpoints Frameworks version 2.0 adds API management features,\nincluding:\n\n- API key management\n- API sharing\n- User authentication\n- API metrics\n- API logs\n\nTo get started, go to the\n[Getting started with Endpoints Frameworks for Python](/endpoints/docs/frameworks/python)\npage.\n\nTroubleshooting\n---------------\n\nThis section describes common erratic behaviors when migrating to\nEndpoints Frameworks version 2.0 and suggested solutions.\n\n### API returns `404` errors, but API Explorer still lists APIs correctly\n\nYou are required to remove the old version 1.0 Endpoints\nconfiguration when migrating to Endpoints Frameworks version 2.0. If\nthe old configuration is still present in the application's configuration, the\nEndpoints service continues to treat the app as a version 1.0\napp. You might see requests in your App Engine logs sent to `/_ah/spi`,\nwhich result in `HTTP 404` errors sent to the client.\n\n1. Remove the following lines, from the `app.yaml` file if they are present:\n\n handlers:\n - url: /_ah/spi/.*\n script: ...\n\n2. Make sure the `handlers` section in your `app.yaml` file has the correct\n path:\n\n handlers:\n # The endpoints handler must be mapped to /_ah/api.\n - url: /_ah/api/.*\n script: ...\n\n### Error message: `ImportError: cannot import name locked_file`\n\nThis happens if your dependencies contain a version of the `oauth2client`\nlibrary that is incompatible with App Engine. See the\n[known issue](/endpoints/docs/frameworks/known-issues#error_message_importerror_cannot_import_name_locked_file)."]]