HTTP- oder HTTPS-URL als API-Gateway-Backend hinzufügen

Erfahren Sie, wie Sie ein API-Deployment erstellen, um mit API-Gateway auf HTTP- und HTTPS-URLs zuzugreifen.

Häufig ist es erforderlich, eine API mit der HTTP- oder HTTPS-URL eines Backend-Service und einem API-Gateway zu erstellen, das Frontend-Zugriff auf die Backend-URL gewährt.

Nachdem Sie mit dem API-Gateway-Service ein API-Gateway erstellt haben, können Sie ein API-Deployment erstellen, um auf HTTP- und HTTPS-URLs zuzugreifen.

Bei der HTTP- oder HTTPS-URL, die Sie für den Backend-Service angeben, kann es sich um Folgendes handeln:

  • Die URL eines Service, der im Internet öffentlich verfügbar ist.
  • Die URL eines Oracle Cloud Infrastructure-Service (z.B. OCI Functions).
  • Die URL eines Service in Ihrem eigenen privaten oder internen Netzwerk (z.B. bei einer VCN-Verbindung über FastConnect).

Die URL, die Sie in der API-Deployment-Spezifikation angeben, um den HTTP- oder HTTPS-Backend-Service zu identifizieren, kann den Hostnamen oder die Host-IP-Adresse enthalten. Wenn Sie den Hostnamen angeben, können Sie mit der Eigenschaft DHCP-Optionen des Subnetzes des API-Gateways steuern, wie Hostnamen in der API-Deployment-Spezifikation zur Laufzeit in IP-Adressen aufgelöst werden:

  • Wenn der Hostname für einen Backend-Service öffentlich im Internet veröffentlicht wird oder der Hostname zu einer Instanz in demselben VCN gehört, wählen Sie ein DHCP-Optionsset für das Subnetz des API-Gateways aus, bei dem der von Oracle bereitgestellte Internet- und VCN-Resolver als DNS-Typ festgelegt ist. Hierbei handelt es sich um den Standardwert, wenn Sie kein DHCP-Optionsset explizit auswählen.
  • Wenn der Hostname zu einem Backend-Service in Ihrem eigenen privaten oder internen Netzwerk gehört, wählen Sie ein DHCP-Optionsset für das Subnetz des API-Gateways aus, bei dem "Benutzerdefinierter Resolver" als DNS-Typ festgelegt und die URL eines geeigneten DNS-Servers angegeben ist, der den Hostnamen in eine IP-Adresse auflösen kann.

Beachten Sie, dass Sie die DNS-Serverdetails im DHCP-Optionsset ändern können, das für das Subnetz eines API-Gateways angegeben ist. Das API-Gateway wird neu konfiguriert, sodass die aktualisierten DNS-Serverdetails innerhalb von zwei Stunden verwendet werden. Weitere Informationen zum Auflösen von Hostnamen in IP-Adressen finden Sie unter DNS im virtuellen Cloud-Netzwerk und DHCP-Optionen.

Sie können HTTP- und HTTPS-Backends zu einer API-Deployment-Spezifikation hinzufügen, indem Sie:

  • die Konsole verwenden
  • eine JSON-Datei bearbeiten

Mit der Konsole HTTP- oder HTTPS-Backends zu einer API-Deployment-Spezifikation hinzufügen

So fügen Sie mit der Konsole ein HTTP- oder HTTPS-Backend zu einer API-Deployment-Spezifikation hinzu:

  1. Erstellen oder aktualisieren Sie ein API-Deployment mit der Konsole, wählen Sie die Option Völlig neu aus, und geben Sie auf der Seite Basisinformationen Details ein.

    Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployment in einem API-Gateway bereitstellen und API-Gateway aktualisieren.

  2. Geben Sie auf der Seite Authentifizierung die Authentifizierungsoptionen an.

    Weitere Informationen zu Authentifizierungsoptionen finden Sie unter Hinzufügen von Authentifizierung und Autorisierung zu API-Deployments.

  3. Erstellen Sie auf der Seite Routen eine neue Route, und geben Sie Folgendes an:

    • Pfad: Einen Pfad zum Backend-Service für API-Aufrufe, die die aufgeführten Methoden verwenden. Beachten Sie, dass der von Ihnen angegebene Routenpfad:

    • Methoden: Eine oder mehrere Methoden, die vom Backend-Service akzeptiert werden. Beispiel: GET, PUT.
    • Ein einzelnes Backend hinzufügen oder Mehrere Backends hinzufügen: Gibt an, ob alle Anforderungen an dasselbe Backend weitergeleitet oder Anforderungen entsprechend der eingegebenen Kontextvariable und Regeln an verschiedene Backends weitergeleitet werden sollen.

      Bei diesen Anweisungen wird davon ausgegangen, dass Sie ein einzelnes Backend verwenden möchten. Wählen Sie daher Ein einzelnes Backend hinzufügen aus. Wenn Sie alternativ andere Backends verwenden möchten, wählen Sie Mehrere Backends hinzufügen aus, und befolgen Sie die Anweisungen unter Dynamische Backend-Auswahl mit der Konsole zu einer API-Deployment-Spezifikation hinzufügen.

    • Backend-Typ: Den Typ des Backend-Service als HTTP.
    • URL: Die URL, die als Backend-Service verwendet werden soll, im Format <protocol>://<host>:<port>/<path>. Dabei gilt:

      • <protocol> ist entweder http oder https.
      • <host> ist der Hostname oder die Host-IP-Adresse des Backend-Service. Beispiel: api.weather.gov. Wenn Sie einen Hostnamen angeben, können Sie mit der Eigenschaft "DHCP-Optionen" des Subnetzes des API-Gateways steuern, wie Hostnamen zur Laufzeit in IP-Adressen aufgelöst werden.
      • <port> ist optional eine Portnummer.
      • <path> ist optional ein Unterverzeichnis oder eine Datei auf dem Host, auf dem sich der Backend-Service befindet.

        Beachten Sie, dass <path> keine direkten Parameter enthalten darf, jedoch kontextabhängige Variablen enthalten kann. Weitere Informationen und Beispiele für die Verwendung von kontextabhängigen Variablen zur Ersetzung von Pfad-, Abfrage- und Headerparametern im Pfad finden Sie unter Kontextabhängige Variablen zu Policys und HTTP-Backend-Definitionen hinzufügen.

      Beispiel: "url": "https://api.weather.gov".

    • Verbindungsaufbautimeout in Sekunden: Optional ein Gleitkommawert, der angibt, wie lange (in Sekunden) der Aufbau einer Verbindung mit dem Backend-Service dauern darf. Der Mindestwert beträgt 1,0 und der Höchstwert 75,0. Wenn kein Wert angegeben wurde, wird standardmäßig 60,0 Sekunden verwendet.
    • Timeout beim Übertragen der Anforderung in Sekunden: Optional ein Gleitkommawert, der angibt, wie lange (in Sekunden) die Übertragung einer Anforderung an den Backend-Service dauern darf. Der Mindestwert beträgt 1,0 und der Höchstwert 300,0. Wenn kein Wert angegeben wurde, wird standardmäßig 10,0 Sekunden verwendet.
    • Timeout beim Lesen der Antwort in Sekunden: Optional ein Gleitkommawert, der angibt, wie lange (in Sekunden) das Lesen einer Antwort vom Backend-Service dauern darf. Der Mindestwert beträgt 1,0 und der Höchstwert 300,0. Wenn kein Wert angegeben wurde, wird standardmäßig 10,0 Sekunden verwendet.
    • SSL-Überprüfung deaktivieren: Gibt an, ob die SSL-Überprüfung bei der Kommunikation mit dem Backend-Service deaktiviert werden soll. Standardmäßig ist diese Option nicht ausgewählt.

    In diesem Beispiel definiert die Route einen Wetterservice als HTTP-Backend.

    Feld: Eingeben:
    Pfad: /weather
    Methoden: GET
    Backend-Typ: HTTP
    URL: https://api.weather.gov
    Verbindungsaufbautimeout in Sekunden: 45
    Timeout beim Übertragen der Anforderung in Sekunden: 15
    Timeout beim Lesen der Antwort in Sekunden: 15
    SSL-Überprüfung deaktivieren: (Nicht ausgewählt)
  4. (Optional) Wählen Sie Weitere Route aus, um Details zusätzlicher Routen einzugeben.
  5. Wählen Sie Weiter aus, um die Details zu prüfen, die Sie für das API-Deployment eingegeben haben.
  6. Wählen Sie Erstellen oder Änderungen speichern aus, um das API-Deployment zu erstellen oder zu aktualisieren.
  7. (Optional) Bestätigen Sie, dass die API erfolgreich bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).

JSON-Datei zum Hinzufügen von HTTP- oder HTTPS-Backends zu einer API-Deployment-Spezifikation bearbeiten

So fügen Sie ein HTTP- oder HTTPS-Backend zu einer API-Deployment-Spezifikation in einer JSON-Datei hinzu:

  1. Erstellen Sie mit Ihrem bevorzugten JSON-Editor eine neue API-Deployment-Spezifikation (siehe API-Deployment-Spezifikation erstellen) in folgendem Format:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "<identifier>",
            "connectTimeoutInSeconds": <seconds>,
            "readTimeoutInSeconds": <seconds>,						
            "sendTimeoutInSeconds": <seconds>,
            "isSSLVerifyDisabled": <true|false>
          },
          "requestPolicies": {},
        }
      ]
    }

    Dabei gilt:

    • "requestPolicies" gibt optionale Policys an, mit denen das Verhalten eines API-Deployments gesteuert wird. Wenn Sie Policys auf alle Routen in einer API-Deployment-Spezifikation anwenden möchten, platzieren Sie die Policys außerhalb des routes-Abschnitts. Wenn Sie Policys nur auf eine bestimmte Route anwenden möchten, platzieren Sie die Policys innerhalb des routes-Abschnitts. Siehe Anforderungs-Policys und Antwort-Policys zu API-Deployment-Spezifikationen hinzufügen.
    • <api-route-path> gibt einen Pfad zum Backend-Service für API-Aufrufe an, die die aufgeführten Methoden verwenden. Beachten Sie, dass der von Ihnen angegebene Routenpfad:

    • <method-list> gibt eine oder mehrere Methoden, die vom Backend-Service akzeptiert werden, durch Komma getrennt an. Beispiel: "GET, PUT".
    • "type": "HTTP_BACKEND" gibt an, dass das API-Gateway-Backend eine HTTP- oder HTTPS-URL ist.
    • "url: "<identifier>" gibt die URL, die als Backend-Service verwendet werden soll, in folgendem Format an: <protocol>://<host>:<port>/<path>. Dabei gilt:

      • <protocol> ist entweder http oder https.
      • <host> ist der Hostname oder die Host-IP-Adresse des Backend-Service. Beispiel: api.weather.gov. Wenn Sie einen Hostnamen angeben, können Sie mit der Eigenschaft "DHCP-Optionen" des Subnetzes des API-Gateways steuern, wie Hostnamen zur Laufzeit in IP-Adressen aufgelöst werden.
      • <port> ist optional eine Portnummer.
      • <path> ist optional ein Unterverzeichnis oder eine Datei auf dem Host, auf dem sich der Backend-Service befindet.

        Beachten Sie, dass <path> keine direkten Parameter enthalten darf, jedoch kontextabhängige Variablen enthalten kann. Weitere Informationen und Beispiele für die Verwendung von kontextabhängigen Variablen zur Ersetzung von Pfad-, Abfrage- und Headerparametern im Pfad finden Sie unter Kontextabhängige Variablen zu Policys und HTTP-Backend-Definitionen hinzufügen.

      Beispiel: "url": "https://api.weather.gov".

    • "connectTimeoutInSeconds": <seconds> ist ein optionaler Gleitkommawert, der angibt, wie lange (in Sekunden) der Aufbau einer Verbindung mit dem Backend-Service dauern darf. Der Mindestwert beträgt 0,0 und der Höchstwert 75,0. Wenn kein Wert angegeben wurde, wird standardmäßig 60,0 Sekunden verwendet.
    • "readTimeoutInSeconds": <seconds> ist ein optionaler Gleitkommawert, der angibt, wie lange (in Sekunden) das Lesen einer Antwort vom Backend-Service dauern darf. Der Mindestwert beträgt 0,0 und der Höchstwert 300,0. Wenn kein Wert angegeben wurde, wird standardmäßig 10,0 Sekunden verwendet.
    • "sendTimeoutInSeconds": <seconds> ist ein optionaler Gleitkommawert, der angibt, wie lange (in Sekunden) die Übertragung einer Anforderung an den Backend-Service dauern darf. Der Mindestwert beträgt 0,0 und der Höchstwert 300,0. Wenn kein Wert angegeben wurde, wird standardmäßig 10,0 Sekunden verwendet.
    • "isSSLVerifyDisabled": <true|false> ist ein optionaler boolescher Wert (entweder true oder false), der angibt, ob die SSL-Überprüfung bei der Kommunikation mit dem Backend-Service deaktiviert werden soll. Wenn kein Wert angegeben wurde, wird standardmäßig false verwendet.

    Beispiel: Die folgende grundlegende API-Deployment-Spezifikation definiert einen Wetterservice als HTTP-Backend:

    {
      "routes": [
        {
          "path": "/weather",
          "methods": ["GET"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "https://api.weather.gov",
            "connectTimeoutInSeconds": 45,
            "readTimeoutInSeconds": 15,						
            "sendTimeoutInSeconds": 15,
            "isSSLVerifyDisabled": false
          }
        }
      ]
    }
  2. Speichern Sie die JSON-Datei, die die API-Deployment-Spezifikation enthält.
  3. Verwenden Sie die API-Deployment-Spezifikation, wenn Sie ein API-Deployment wie folgt erstellen oder aktualisieren:

    • Durch Angabe der JSON-Datei in der Konsole bei Auswahl der Option Vorhandene API hochladen
    • Durch Angabe der JSON-Datei in einer Anforderung an die REST-API von API-Gateway

    Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployments in einem API-Gateway bereitstellen.

  4. (Optional) Bestätigen Sie, dass die API bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).