Cloud Endpoints für die Verwendung von OpenAPI 3.x ändern

Auf dieser Seite wird beschrieben, wie Sie eine OpenAPI 3.x-Spezifikation verwenden, wenn Sie Endpoints konfigurieren.

Hinweise

  • Prüfen Sie, ob Sie eine vorhandene Endpoints-Instanz mit einer OpenAPI 2.0-Spezifikation konfiguriert haben.
  • Installieren Sie die gcloud-Befehlszeile. Weitere Informationen finden Sie unter Google Cloud CLI installieren.

Endpoints-Konfiguration für die Verwendung von OpenAPI 3.x ändern

Führen Sie die folgenden Schritte aus, um eine vorhandene OpenAPI 2.0-Endpoints-Konfiguration für die Verwendung von OpenAPI 3.x zu ändern.

Deployment-Verlauf ansehen

So rufen Sie den Deployment-Verlauf auf:

  1. Rufen Sie in der Google Cloud Console die Seite Endpoints > Dienste auf.

    Endpoints-Dienste aufrufen

  2. Wählen Sie Ihr Projekt aus der Projektliste aus.

  3. Wenn Sie mehrere APIs haben, wählen Sie eine API aus der Liste aus.

  4. Klicken Sie auf den Tab Bereitstellungsverlauf, um die Deployments der Dienstkonfigurationen aufzulisten. Die folgenden Informationen werden angezeigt:

    • Konfigurations-ID
    • Datum des Deployments der Dienstkonfiguration
    • Bereitsteller der Dienstkonfiguration

Dienstkonfiguration ansehen

Wählen Sie auf dem Tab Bereitstellungsverlauf das letzte Deployment aus der Liste aus. Der Inhalt der erstellten Dienstkonfigurationsdatei wird angezeigt.

OpenAPI-Dokument in OpenAPI 3.x konvertieren

Konvertieren Sie Ihr OpenAPI 2.0-Dokument in OpenAPI 3.x. Sie können ein Tool verwenden, das diese Konvertierung in OpenAPI 3.x unterstützt. Swagger Editor bietet beispielsweise ein Konvertierungstool.

Nach der ersten Konvertierung in OpenAPI 3.x müssen Sie alle zusätzlichen Änderungen am Dokument manuell vornehmen, um es an OpenAPI 3.x anzupassen und die Kompatibilität mit Endpoints-Erweiterungen und ‑Funktionen zu gewährleisten.

In der folgenden Tabelle werden die erforderlichen Änderungen beschrieben:

Funktion OpenAPI 2.0 OpenAPI 3.x Beschreibung der Änderung
API-Schlüssel securityDefinitions securitySchemes API-Schlüssel nutzen die sofort einsatzbereite Unterstützung für OpenAPI-API-Schlüssel. Konvertierungstools erledigen dies in der Regel automatisch. Es sind keine manuellen Änderungen erforderlich.
JWT-Authentifizierung x-google-audiences usw. x-google-auth In OpenAPI 2.0-Erweiterungen definieren Sie die OAuth-Konfiguration mit einzelnen Erweiterungen für eine securityDefinition-Instanz. Mit Conversion-Tools wird die Sicherheitskonfigurationsinstanz in #/components/securitySchemes konvertiert, die Erweiterungen bleiben erhalten. Ändern Sie diese Erweiterungen manuell, sodass sie untergeordnete Elemente von x-google-auth sind, und entfernen Sie das Präfix x-google-. Die Werte bleiben gleich.
Kontingent x-google-management, x-google-quota x-google-api-management, x-google-quota In OpenAPI 2.0-Erweiterungen definieren Sie Messwerte und Kontingente in x-google-management und hängen sie mit x-google-quota an. Bei der Konvertierung bleiben diese Erweiterungen erhalten. Messwerte und Kontingentkonfiguration manuell von x-google-management nach x-google-api-management verschieben. Ändern Sie die Konfiguration so, dass YAML-Schlüssel verwendet werden, und entfernen Sie valueType, metricKind und unit. Entfernen Sie metricCosts aus Instanzen von x-google-quota.
Back-Ends x-google-backend x-google-api-management, x-google-backend In OpenAPI 2.0-Erweiterungen definieren Sie Back-Ends in x-google-backend. Die Konfiguration gilt dort, wo sie definiert ist. In OpenAPI 3.x-Erweiterungen definieren Sie das Backend in x-google-api-management und wenden es dann mit x-google-backend an. Bei Conversion-Tools bleibt diese Erweiterung erhalten. Verschieben Sie die Konfiguration manuell nach x-google-api-management. Ändern Sie Instanzen von x-google-backend, damit sie auf diese Konfiguration verweisen.
Endpunkte x-google-endpoints x-google-endpoint, servers In OpenAPI 2.0-Erweiterungen definieren Sie die Endpoints-Konfiguration in x-google-endpoints. In OpenAPI 3.x-Erweiterungen verwenden Sie x-google-endpoint, aber es ist eine Erweiterung von servers und nicht auf der Stammebene. Conversion-Tools lassen diese Erweiterung unverändert. Verschieben Sie dies manuell in servers und entfernen Sie das Feld name. Beispiel:
# OpenAPI 2.0
x-google-endpoints:
- name: "my-api.apigateway.my-project.cloud.goog"
  allowCors: True
# OpenAPI 3.x
servers:
- url: https://my-api.apigateway.my-project.cloud.goog/
  x-google-endpoint:
    allowCors: True
API-Namen x-google-api-name x-google-api-management In OpenAPI 2.0-Erweiterungen definieren Sie API-Namen in x-google-api-name. In OpenAPI 3.x-Erweiterungen verwenden Sie das Feld apiName in x-google-api-management. Verschieben Sie diese Konfiguration manuell nach x-google-api-management.
Jeden Traffic zulassen x-google-allow NICHT UNTERSTÜTZT Entfernen Sie dies aus dem OpenAPI-Dokument. Cloud Endpoints unterstützt dies in OpenAPI 3.x nicht.

Dienstkonfiguration neu bereitstellen

Wenn Sie Änderungen an Ihrem OpenAPI-Dokument vornehmen, müssen Sie es neu bereitstellen, damit Cloud Endpoints über die neueste Version der API-Dienstkonfiguration verfügt. Sie müssen den ESP nicht noch einmal bereitstellen oder neu starten, wenn Sie ihn zuvor mit der Option rollout auf managed festgelegt haben. Diese Option konfiguriert den ESP so, dass die zuletzt bereitgestellte Dienstkonfiguration verwendet wird. Wenn Sie diese Option innerhalb von 5 Minuten nach der Bereitstellung einer neuen Dienstkonfiguration angeben, erkennt der ESP die Änderung und verwendet automatisch die neue Konfiguration. Wir empfehlen, diese Option anstelle einer konkreten Konfigurations-ID anzugeben, die vom ESP verwendet werden soll.

So stellen Sie Ihr OpenAPI-Dokument bereit:

  1. Geben Sie als Verzeichnis den Speicherort Ihres OpenAPI-Dokuments an.

  2. Überprüfen Sie anhand der Projekt-ID, die vom folgenden Befehl zurückgegeben wurde, ob der Dienst im richtigen Projekt erstellt wird.

    gcloud config list project
    

    Wenn Sie das Standardprojekt ändern müssen, führen Sie den folgenden Befehl aus und ersetzen Sie YOUR_PROJECT_ID durch die Google Cloud Projekt-ID, in der Sie den Dienst erstellen möchten:

    gcloud config set project <var>YOUR_PROJECT_ID</var>
    
  3. Führen Sie den folgenden Befehl aus und ersetzen Sie YOUR_OPENAPI_DOCUMENT durch den Namen des OpenAPI-Dokuments, das Ihre API beschreibt:

    gcloud endpoints services deploy <var>YOUR_OPENAPI_DOCUMENT</var>
    

Wenn Sie den vorherigen Befehl zum ersten Mal ausführen, erstellt Service Management im Standardprojekt einen neuen Cloud Endpoints-Dienst mit dem Namen, den Sie im Feld host in Ihrem OpenAPI-Dokument eingegeben haben, und lädt die Dienstkonfiguration hoch.

Beim Erstellen und Konfigurieren des Diensts gibt Service Management Informationen an das Terminal aus. Nach erfolgreichem Abschluss des Vorgangs sehen Sie eine Zeile wie die folgende, die die Dienstkonfigurations-ID und den Dienstnamen enthält:

Service Configuration [2017-02-13r0] uploaded for service [echo-api.endpoints.example-project-12345.cloud.goog]

Im obigen Beispiel ist 2017-02-13r0 die Dienstkonfigurations-ID und echo-api.endpoints.example-project-12345.cloud.goog der Dienstname.

Nach der erfolgreichen Bereitstellung können Sie die API in der Google Cloud console auf der Seite Endpoints > Dienste einsehen.

Wenn Sie eine Fehlermeldung erhalten, lesen Sie die Informationen unter Fehlerbehebung bei der Endpoints-Konfigurationsbereitstellung.

Nächste Schritte