Cloud Endpoints APIs in API Gateway bereitstellen
Cloud Endpoints ist ein API-Verwaltungssystem, mit dem Sie Ihre APIs schützen, überwachen, analysieren und Kontingente dafür festlegen können. Endpoints verwendet den Extensible Service Proxy (ESP) oder den Extensible Service Proxy V2 Beta (ESPv2 Beta), um Ihre APIs zu hosten.
Wenn Sie Endpoints verwenden, haben Sie drei Möglichkeiten, Ihre API zu definieren:
- Cloud Endpoints für OpenAPI
- Cloud Endpoints for gRPC
- Cloud Endpoints Frameworks für die App Engine-Standardumgebung
APIs mit API Gateway entwickeln
API Gateway unterstützt APIs, die mit der OpenAPI-Spezifikation Version 2.0 beschrieben werden. Das bedeutet, dass Sie Ihre OpenAPI-Spezifikationen aus Endpoints in API Gateway bereitstellen können.
OpenAPI-Spezifikationen für Endpoints in API Gateway bereitstellen
API Gateway unterstützt dasselbe Format und dieselben Optionen für die Definition von OpenAPI-Spezifikationen wie Cloud Endpoints for OpenAPI. Das bedeutet, dass Sie dieselben Sicherheits-, Kontingent- und anderen Definitionen aus Ihren OpenAPI-Spezifikationen für Endpoints verwenden können, um eine API in API Gateway zu definieren.
Der einzige Unterschied zwischen Endpoints und API Gateway besteht darin, wie die Property host
in der OpenAPI-Spezifikation verarbeitet wird:
- Legen Sie unter „Endpoints“ für die Property
host
den Hostnamen-Teil der URL fest, die beim Bereitstellen von ESP erstellt wurde. ESP ist der Dienst, mit dem Ihre Endpoints API gehostet wird. - In API Gateway: Lassen Sie
host
aus oder setzen Sie es auf den DNS-Namen der bereitgestellten API. API-Anbieter legen diesen Wert häufig auf den DNS-Namen fest, wenn sie die OpenAPI-Spezifikation für ihre API-Nutzer freigeben. In API Gateway wird der Wert der Eigenschafthost
jedoch nicht erzwungen.
Im Folgenden finden Sie beispielsweise einen Teil einer OpenAPI-Spezifikation, die von Endpoints zum Definieren einer API für den Zugriff auf einen Backend-Dienst verwendet wird, der in Cloud Run-Funktionen bereitgestellt wird:
swagger: '2.0' info: title: Cloud Endpoints + GCF description: Sample API on Cloud Endpoints with a Google Cloud Functions backend version: 1.0.0 host: ESP_HOST schemes: - https produces: - application/json paths: /hello: ...
Für Endpoints:
Stellen Sie ESP bereit. Dadurch wird die URL erstellt, mit der Sie dann auf den ESP bereitgestellte APIs zugreifen. Beispiel:
https://gateway-12345-uc.a.run.app
Bearbeiten Sie die OpenAPI-Spezifikation, um die
host
-Eigenschaft auf den Domainnamen der ESP-URL festzulegen. Beispiel:host: gateway-12345-uc.a.run.app
Stellen Sie die OpenAPI-Spezifikation im ESP bereit.
Verwenden Sie die ESP-URL, um auf Ihre API zuzugreifen. In der vorherigen OpenAPI-Spezifikation ist das Element
paths
auf/hello
festgelegt. Sie können also über die folgende URL auf diese API zugreifen:https://gateway-12345-uc.a.run.app/hello
Wie Sie sehen, müssen Sie für Endpoints zuerst ESP bereitstellen, um den Wert des Attributs host
festlegen zu können.
Wenn Sie diese API-Definition verwenden möchten, um eine API-Konfiguration für API Gateway zu erstellen, können Sie das Attribut host
entweder vollständig löschen oder in der Datei belassen.
Der Wert der host
-Eigenschaft wird von API Gateway nicht erzwungen.
Die URL des bereitgestellten Gateways und damit die URL, über die Ihre Kunden auf Ihre API zugreifen, wird beim Erstellen des Gateways im folgenden Format definiert:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
Dabei ist GATEWAY_ID der Name des Gateways, HASH der eindeutige Hash-Code, der bei der Bereitstellung der API erzeugt wurde, und REGION_CODE der Code für die Google Cloud Region, in der Sie das Gateway bereitgestellt haben.
Nachdem Sie eine API in einer Gateway-Instanz bereitgestellt haben, lautet die URL, über die Sie auf /hello
zugreifen, dann:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Weitere Informationen zum Bereitstellen von APIs finden Sie unter API-Gateway-Bereitstellungsmodell.
Weitere Informationen zum Erstellen der OpenAPI-Spezifikation für Ihre API-Definition finden Sie unter OpenAPI-Übersicht.