Diese Seite enthält ausführliche Konfigurations- und Bereitstellungsanleitungen zum Ändern der Versionsnummer einer API. Welche Anleitung Sie verwenden, hängt davon ab, ob die Änderungen an der API abwärtskompatibel sind.
- Wenn die neue API-Version abwärtskompatible Änderungen enthält, beispielsweise neue Felder oder Methoden, lesen Sie die Informationen unter Abwärtskompatible Änderungen.
- Wenn Änderungen an einer vorhandenen Methode in der neuen API dazu führen, dass der Clientcode Ihrer Kunden nicht mehr funktioniert, lesen Sie die Informationen unter Abwärtsinkompatible Änderungen.
Weitere Informationen und Best Practices finden Sie unter API-Lebenszyklus verwalten.
Abwärtskompatible Änderungen
Wenn die Änderungen an der API mit dem vorhandenen Clientcode abwärtskompatibel sind, erhöhen Sie am besten die Nebenversionsnummer der API, bevor Sie die neue Version bereitstellen. Obwohl Cloud Endpoints nur jeweils eine Nebenversion einer API ausführt, wird die Versionsnummer dennoch in den Grafiken und Logs unter Endpoints > Dienste angezeigt. Durch Erhöhung der Nebenversionsnummer vor der Bereitstellung können Sie an den Grafiken und Logs den Verlauf Ihrer Bereitstellungen ablesen.
So erhöhen Sie die Nebenversionsnummer:
Erhöhen Sie in
openapi.yaml
die Nebenversionsnummer des Feldesinfo.version
. Beispiel: Wenn die aktuelle Version1.1
lautet, legen Sieinfo.version
auf1.2
fest:info: description: "A simple Cloud Endpoints API example." title: "Endpoints Example" version: "1.2" host: "echo-api.endpoints.example-project-12345.cloud.goog"
Stellen Sie die API-Konfiguration mit der Google Cloud CLI bereit:
gcloud endpoints services deploy openapi.yaml
Stellen Sie das API-Backend mithilfe der Konfigurations-ID bereit, die im vorherigen Schritt zurückgegeben wurde. Weitere Informationen finden Sie unter API-Backend bereitstellen.
Abwärtsinkompatible Änderungen
Wenn die Änderungen an der API nicht mit dem Clientcode des Kunden kompatibel sind, erhöhen Sie am besten die Hauptversionsnummer der API. In Endpoints können mehrere Hauptversionen einer API gleichzeitig ausgeführt werden. Wenn Sie beide Versionen der API anbieten, können Kunden die gewünschte Version auswählen und selbst entscheiden, wann sie zur neuen Version migrieren.
So führen Sie die vorhandene Version und neue Versionen einer API gleichzeitig aus:
Erstellen Sie separate OpenAPI-Konfigurationsdateien für jede Version, die Sie bereitstellen müssen. Bei diesem Vorgang werden die Dateinamen
openapi-v1.yaml
undopenapi-v2.yaml
zu Beispielzwecken verwendet.Kopieren Sie den Inhalt von
openapi-v1.yaml
inopenapi-v2.yaml
.Konfigurieren Sie in
openapi-v1.yaml
Folgendes:- Legen Sie das Feld
info.version
auf die vorhandene Versionsnummer fest. - Ändern Sie das Feld
basePath
nicht.
Beispiel:
info: description: "A simple Cloud Endpoints API example." title: "Endpoints Example" version: "1.1" host: "echo-api.endpoints.example-project-12345.cloud.goog" basePath: "/v1"
- Legen Sie das Feld
Konfigurieren Sie in
openapi-v2.yaml
Folgendes:- Nicht abwärtskompatible Änderungen vornehmen
- Legen Sie das Feld
info.version
auf die neue Versionsnummer fest. - Geben Sie im Feld
basePath
zusätzlich die neue Hauptversionsnummer an. - Entfernen Sie den Abschnitt
x-google-endpoints
. Dieser Abschnitt ist erforderlich, wenn Sie die DNS-IP-Adresse oder das FlagallowCors
angeben möchten. Wenn Sie zwei Versionen der API mit zwei yaml-Konfigurationsdateien bereitstellen, kann nur eine davonx-google-endpoints
haben. Die Konfiguration gilt jedoch für beide Versionen.
Beispiel:
info: description: "A simple Google Cloud Endpoints API example." title: "Endpoints Example" version: "2.0" host: "echo-api.endpoints.example-project-12345.cloud.goog" basePath: "/v2"
Stellen Sie beide API-Konfigurationsdateien mit der Google Cloud CLI bereit:
gcloud endpoints services deploy openapi-v1.yaml openapi-v2.yaml
Stellen Sie nur ein Backend bereit, das beide Versionen der API bedient. Verwenden Sie dazu die Konfigurations-ID, die im vorherigen Schritt zurückgegeben wurde. Weitere Informationen finden Sie unter API-Backend bereitstellen.