Wenn Sie die API von Cloud Endpoints verwalten lassen möchten, haben Sie abhängig davon, wo Ihre API gehostet wird und welche Art von Kommunikationsprotokoll sie verwendet, drei Optionen:
- Cloud Endpoints für OpenAPI
- Cloud Endpoints for gRPC
- Cloud Endpoints Frameworks für die App Engine-Standardumgebung
Auf dieser Seite werden die Optionen für Endpoints beschrieben, um Ihnen die Wahl der passenden Option zu erleichtern.
Computing-Option auswählen
Endpoints unterstützt verschiedene Computing-Optionen der Google Cloud, die den Backend-Code Ihrer API hosten können. Endpoints kann entweder mit Extensible Service Proxy (ESP) oder mit Extensible Service Proxy V2 (ESPv2) bereitgestellt werden, um eine API-Verwaltung bereitzustellen. Die folgende Tabelle fasst die unterstützten Computing-Optionen zusammen:
ESP für OpenAPI | ESP für gRPC | ESPv2 für OpenAPI | ESPv2 für gRPC | Endpoints Frameworks | |
---|---|---|---|---|---|
App Engine- Standardumgebung der Generation 1 |
Java 8- und Python 2.7-Laufzeit | ||||
App Engine- Standardumgebung der Generation 2 |
|||||
Flexible App Engine- Umgebung |
|||||
Cloud Run Functions | |||||
Cloud Run | |||||
Knative Serving | |||||
Compute Engine | |||||
GKE | |||||
Kubernetes | |||||
Andere Drittanbieter-Cloud |
Vergleichen Sie unter Computing-Option auswählen die Funktionen von App Engine, GKE und Compute Engine. Wenn Sie App Engine verwenden möchten, müssen Sie sich zwischen der Standardumgebung und der flexiblen Umgebung entscheiden. Unter App Engine-Umgebung wählen finden Sie einen Vergleich der beiden Umgebungen.
Einschränkungen der Computing-Option
Endpoints für OpenAPI und Endpoints für gRPC können ESP oder ESPv2 als Proxy verwenden. Bei nicht serverlosen Plattformen wird ESP oder ESPv2 als Container vor Ihrer Anwendung oder als Sidecar-Datei mit Ihrer Anwendung bereitgestellt. Für serverlose Plattformen wie Cloud Run, Cloud Run-Funktionen und App Engine wird ESPv2 als Cloud Run-Dienst als Remote-Proxy zur Verwaltung Ihrer serverlosen Plattformanwendungen bereitgestellt.
Nachdem Sie den Backend-Code Ihrer API bereitgestellt haben, fängt ESP oder ESPv2 alle Anfragen ab und prüft sie (z. B. durch Authentifizierung), bevor die Anfrage an das API-Backend weitergeleitet wird. Wenn das Backend antwortet, sammelt und meldet ESP telemetrische Messwerte über Service Infrastructure.
Auf der Seite Endpoints-Dienste in der Google Cloud Console können Sie Messwerte für Ihre API und Links zu den Logs und Traces der Google Cloud Observability aufrufen.
Beschränkungen für die App Engine-Standardumgebung der Generation 1
Endpoints für die App Engine-Standardumgebung der Generation 1 verwendete in der Vergangenheit Endpoints-Frameworks, die nur die Laufzeitumgebung Java 8 und Python 2.7 unterstützen.
Da die App Engine-Standardumgebung in der Entwicklungsphase von Endpoints Frameworks keine Bereitstellungen für mehrere Container unterstützt hat, wird der ESP von Endpoints Frameworks nicht verwendet. Endpoints Frameworks enthält stattdessen ein integriertes API-Gateway mit API-Verwaltungsfeatures, die mit den Features vergleichbar sind, die der ESP für Endpoints für OpenAPI und Endpoints für gRPC bereitstellt.
gRPC APIs werden von App Engine oder Cloud Run Functions nicht unterstützt
gRPC ist ein RPC-Framework (Remote Procedure Call), das in jeder Umgebung ausgeführt werden kann. Mit gRPC kann eine Clientanwendung Methoden in einer Serveranwendung auf einem anderen Computer direkt aufrufen, als ob sie ein lokales Objekt wäre. Eine Kernfunktion von gRPC ist das bidirektionale Streaming mit HTTP/2-basiertem Transport.
HTTP/2 wird von App Engine- und Cloud Run-Funktionen nicht unterstützt.
Unterstützte Programmiersprachen
- Die OpenAPI-Spezifikation ist eine sprachunabhängige Spezifikation. Sie können die API in jeder Programmiersprache implementieren.
- gRPC bietet den Protokollpufferkompilierer
protoc
für viele wichtige Programmiersprachen: C++, C#, Objective-C (für iOS), Dart, Go, Java (einschließlich Unterstützung für Android), Node.js, Python und Ruby. In den gRPC-FAQs finden Sie die aktuellste Liste. - Endpoints Frameworks unterstützt nur Java 8 und Python 2.7.
API beschreiben
Die Optionen von Endpoints bieten verschiedene Möglichkeiten zum Beschreiben Ihrer API.
Endpoints for OpenAPI
Die OpenAPI-Initiative ist eine branchenweite Initiative zur Standardisierung der Beschreibung von REST APIs. Endpoints unterstützt APIs, die mit Version 2.0 der OpenAPI-Spezifikation (früher Swagger-Spezifikation) beschrieben werden. Sie beschreiben die Oberfläche Ihrer API in einer JSON- oder YAML-Datei (die als OpenAPI-Dokument bezeichnet wird). Sie können die API mit jedem öffentlich verfügbaren REST-Framework wie Django oder Jersey implementieren. Lesen Sie die OpenAPI-Übersicht, wenn Sie mit der OpenAPI-Spezifikation nicht vertraut sind.
Weitere Informationen finden Sie unter Endpoints für OpenAPI.
Endpoints für gRPC
Mit gRPC definieren Sie die Struktur der Daten, die Sie serialisieren möchten, in einer Proto-Datei. Dies ist eine gewöhnliche Textdatei mit der Erweiterung .proto
. Sie definieren auch die Oberfläche Ihrer API in Proto-Dateien, wobei RPC-Methodenparameter und -Rückgabetypen als Protokollpuffermeldungen angegeben werden. Wenn Sie mit gRPC nicht vertraut sind, finden Sie weitere Informationen unter What is gRPC?
in der gRPC-Dokumentation.
Weitere Informationen finden Sie unter Endpoints für gRPC.
Endpoints Frameworks
Endpoints Frameworks ist ein Web-Framework für die Python 2.7- und Java 8-Standardlaufzeitumgebungen für App Engine. Metadaten fügen Sie Ihrem Quellcode in Java mit Annotationen und in Python mit Decorators hinzu. Die Metadaten beschreiben die Oberfläche der REST-APIs für Ihre Anwendung.
Weitere Informationen finden Sie unter Endpoints Frameworks.
Weitere Informationen
Sehen Sie sich im Schnellstart für Endpoints Beispiele für Endpoints-Funktionen an. In der Anleitung wird eine Beispiel-API mithilfe von Skripts in der flexiblen App Engine-Umgebung bereitgestellt.
Machen Sie sich mit den Bereitstellungsschritten vertraut, indem Sie eine der Anleitungen für die ausgewählte Endpoints-Option durcharbeiten:
Weitere Informationen zu Endpoints und ESP: