Die basePath-Eigenschaft von OpenAPI einrichten - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die basePath-Eigenschaft von OpenAPI einrichten

In OpenAPI 2.0 können Sie mit der basePath-Eigenschaft einen oder mehrere Pfadbestandteile bereitstellen, die jedem in den paths-Eigenschaften definierten Pfad vorangestellt werden. In API Gateway gibt es mehrere Möglichkeiten, den Pfad einer Ressource auszudrücken daher bietet auch die Funktion zum Importieren von APIs drei Optionen für die Interpretation der basePath-Eigenschaft während eines Importvorgangs: Ignorieren, Voranstellen und Splitten.

In OpenAPI 3.0 ist basePath keine Top-Level-Eigenschaft mehr. Stattdessen verwendet API Gateway eine Servervariable als Konvention. Die Funktion zum Importieren von APIs bietet die gleichen Optionen für die Interpretation der Basispfades während des Imports. Der Basispfad wird wie folgt identifiziert:

  • Wenn die API keine basePath-Variablen aufweist, überprüft die Funktion zum Importieren von APIs, ob die server.url-Zeichenfolge einen Pfad außer "/" enthält. Wenn dies der Fall ist, wird dieser Pfad als Basispfad verwendet.

  • Wenn die API nur eine basePath-Variable enthält, verwendet die Funktion zum Importieren von APIs diese als Basispfad, auch wenn sie nicht in server.url referenziert wird.

  • Wenn die API mehrere basePath-Variablen enthält, verwendet die Funktion zum Importieren von APIs nur den ersten Eintrag als Basispfad.

Ignore

Wenn in der OpenAPI-Datei der basePath-Wert /a/b/c lautet und die paths-Eigenschaft /e und /fenthält, führt die folgende POST- oder PUT-Anforderung:

POST /restapis?mode=import&basepath=ignore

PUT /restapis/api_id?basepath=ignore

führt dies zu den folgenden Ressourcen in der API:

  • /

  • /e

  • /f

Dadurch wird die basePath-Eigenschaft so behandelt, als sei sie nicht vorhanden, und alle deklarierten API-Ressourcen werden relativ zum Host bereitgestellt. Dies empfiehlt sich z. B., wenn Sie einen benutzerdefinierten Domänennamen mit einem API-Mapping ohne einen Wert für den Basispfad und mit einem Wert für die Phase (die sich auf Ihre Produktionsphase bezieht) haben.

Anmerkung

API Gateway erstellt automatisch eine Root-Ressource für Sie, auch wenn diese nicht explizit in Ihrer Definitionsdatei deklariert ist.

Wenn nicht angegeben, wird basePath standardmäßig auf ignore gesetzt.

Voranstellen

Wenn in der OpenAPI-Datei der Wert der basePath-Eigenschaft lautet und die /a/b/c-Eigenschaft pathsund/e enthält, führt die folgende /fPOST- oder POSTPUTPUT-Anforderung:

POST /restapis?mode=import&basepath=prepend

PUT /restapis/api_id?basepath=prepend

führt dies zu den folgenden Ressourcen in der API:

  • /

  • /a

  • /a/b

  • /a/b/c

  • /a/b/c/e

  • /a/b/c/f

Dadurch wird die Eigenschaft basePath so behandelt, als würde sie zusätzliche Ressourcen (ohne Methoden) angeben und diese zum deklarierten Ressourcensatz hinzufügen. Dies empfiehlt sich z. B., wenn verschiedene Teams für die verschiedene Teile einer API zuständig sind und die Eigenschaft basePath auf den Pfadpfadspeicherort des API-Teils der einzelnen Teams verweisen kann.

Anmerkung

API Gateway erstellt automatisch Zwischenstufen von Ressourcen für Sie, auch wenn Sie diese nicht ausdrücklich in der Definition deklariert haben.

Teilen

Wenn in der OpenAPI-Datei der Wert der basePath-Eigenschaft lautet und die /a/b/c-Eigenschaft pathsund/e enthält, führt die folgende /fPOST- oder POSTPUTPUT-Anforderung:

POST /restapis?mode=import&basepath=split

PUT /restapis/api_id?basepath=split

führt dies zu den folgenden Ressourcen in der API:

  • /

  • /b

  • /b/c

  • /b/c/e

  • /b/c/f

Dadurch wird die oberste Ebene des Pfades (/a) als Beginn aller Pfade der Ressource behandelt und es werden zusätzliche Ressourcen (keine Methoden) in der API an sich erstellt. Das empfiehlt sich z. B., wenn a ein Phasenname ist, den Sie als Teil Ihrer API bereitstellen möchten.