Standardantworten als API-Gateway-Backend hinzufügen

Erfahren Sie, wie Sie mit API Gateway einen Pfad zu einem Backend für Aktienantworten definieren.

Häufig möchten Sie prüfen, ob eine API erfolgreich in einem API-Gateway bereitgestellt wurde, ohne einen tatsächlichen Backend-Service einrichten zu müssen. Eine Lösung besteht darin, eine Route in der API-Deployment-Spezifikation zu definieren, die einen Pfad zu einem "Dummy"-Backend aufweist. Beim Empfang einer Anforderung an diesen Pfad fungiert das API-Gateway selbst als Backend und gibt eine von Ihnen angegebene Standardantwort zurück.

Gleichermaßen kann es in einem Produktions-Deployment vorkommen, dass ein bestimmter Pfad für eine Route konsistent die gleiche Standardantwort zurückgeben soll, ohne dass eine Anforderung an ein Backend gesendet wird. Beispiel: Sie möchten, dass ein Aufruf an einen Pfad immer einen bestimmten HTTP-Statuscode in der Antwort zurückgibt.

Mit dem API-Gateway-Service können Sie einen Pfad zu einem Standardantwort-Backend definieren, das immer Folgendes zurückgibt:

  • Denselben HTTP-Statuscode
  • Dieselben HTTP-Headerfelder (Name/Wert-Paare)
  • Denselben Inhalt im Hauptteil der Antwort

Beachten Sie bei der Definition von Standardantworten und Standardantwort-Backends die folgenden Einschränkungen:

  • Ein Headername darf die Länge von 1 KB nicht überschreiten
  • Ein Headerwert darf die Länge von 4 KB nicht überschreiten
  • Eine Hauptteilantwort darf die Länge von 5 KB nicht überschreiten (einschließlich Codierung)
  • Die Definition eines Standardantwort-Backends darf nicht mehr als 50 Headerfelder enthalten

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

  • die Konsole verwenden
  • eine JSON-Datei bearbeiten

Mit der Konsole Standardantworten zu einer API-Deployment-Spezifikation hinzufügen

So fügen Sie mit der Konsole Standardantworten 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 Stock Response.
    • Statuscode: Einen beliebigen gültigen HTTP-Antwortcode. Beispiel: 200
    • Hauptteil: Gibt optional den Inhalt des Antworthauptteils in einem entsprechenden Format an. Beispiel:

      • Wenn Sie einen Headernamen und Headerwert von Content-Type bzw. text/plain angeben, könnte der Antwortbody "Hello world" lauten.
      • Wenn Sie einen Headernamen und Headerwert von Content-Type bzw. application/json angeben, könnte der Antwortbody {"username": "john.doe"} lauten.

      Beachten Sie, dass der Antworthauptteil die Länge von 5 KB nicht überschreiten darf (einschließlich Codierung).

    • Headername und Headerwert: Optional können Sie den Namen eines HTTP-Antwortheaders und dessen Wert angeben. Beispiel: Einen Namen von Content-Type und einen Wert von application/json. Sie können mehrere Paare aus Headername und -wert angeben (maximal 50). Beachten Sie in jedem Fall Folgendes:

      • Der Headername darf die Länge von 1 KB nicht überschreiten
      • Der Headerwert darf die Länge von 4 KB nicht überschreiten

    In diesem Beispiel gibt eine Anforderung an den /test-Pfad einen 200-Statuscode und eine JSON-Payload im Hauptteil der Antwort zurück.

    Feld: Eingeben:
    Pfad: /test
    Methoden: GET
    Backend-Typ: Stock Response
    Statuscode: 200
    Body: {"username": "john.doe"}
    Header-Name: Content-Type
    Headerwert: application/json

    In diesem Beispiel gibt eine Anforderung an den /test-redirect-Pfad einen 302-Statuscode und eine temporäre URL im Location-Header der Antwort zurück.

    Feld: Eingeben:
    Pfad: /test-redirect
    Methoden: GET
    Backend-Typ: Stock Response
    Statuscode: 302
    Body: n/v
    Header-Name: Location
    Headerwert: http://www.example.com
  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 Standardantworten zu einer API-Deployment-Spezifikation bearbeiten

So fügen Sie Standardantworten zu einer API-Deployment-Spezifikation in einer JSON-Datei hinzu:

  1. Bearbeiten Sie mit Ihrem bevorzugten JSON-Editor die vorhandene API-Deployment-Spezifikation, der Sie ein Standardantwort-Backend hinzufügen möchten, oder erstellen Sie eine neue API-Deployment-Spezifikation (siehe API-Deployment-Spezifikation erstellen).

    Beispiel: Die folgende Basisspezifikation für das API-Deployment definiert eine einfache serverlose Hello World-Funktion in OCI Functions als einzelnes Backend:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
  2. Fügen Sie im routes-Abschnitt einen neuen path-Abschnitt für ein Standardantwort-Backend ein.

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        },
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": <http-response-code>,
            "headers": [{
              "name": "<header-name>",
              "value": "<header-value>"
            }],
            "body": "<body-content>"
          }
        }
      ]
    }

    Dabei gilt:

    • <api-route-path> gibt einen Pfad zum Standardantwort-Backend 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 Standardantwort-Backend akzeptiert werden, durch Komma getrennt an. Beispiel: "GET, PUT".
    • "type": "STOCK_RESPONSE_BACKEND" gibt an, dass das API-Gateway selbst als Backend fungiert und die von Ihnen definierte Standardantwort (Statuscode, Headerfelder und Hauptteilinhalt) zurückgibt.
    • <http-response-code> ist ein beliebiger gültiger HTTP-Antwortcode. Beispiel: 200
    • "name": "<header-name>", "value": "<header-value>" gibt optional den Namen eines HTTP-Antwortheaders und dessen Wert an. Beispiel: "name": "Content-Type", "value":"application/json" . Sie können mehrere "name": "<header-name>", "value": "<header-value>"-Paare im headers:-Abschnitt angeben (maximal 50). Beachten Sie in jedem Fall Folgendes:
      • <header-name> darf die Länge von 1 KB nicht überschreiten
      • <header-value> darf die Länge von 4 KB nicht überschreiten
    • "body": "<body-content>" gibt optional den Inhalt des Antworthauptteils in einem entsprechenden Format an. Beispiel:
      • Wenn der Content-Type-Header text/plain lautet, könnte der Antworthauptteil "body": "Hello world" sein.
      • Wenn der Content-Type-Header application/json lautet, könnte der Antworthauptteil "body": "{\"username\": \"john.doe\"}" sein. Beachten Sie bei einer JSON-Antwort, dass Anführungszeichen in der Antwort mit einem umgekehrten Schrägstrich ( \ ) maskiert werden müssen.

      Beachten Sie, dass <body-content> die Länge von 5 KB nicht überschreiten darf (einschließlich Codierung).

    In diesem Beispiel gibt eine Anforderung an den /test-Pfad einen 200-Statuscode und eine JSON-Payload im Hauptteil der Antwort zurück.

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        },
        {
          "path": "/test",
          "methods": ["GET"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": 200,
            "headers": [{
              "name": "Content-Type",
              "value": "application/json"
            }],
            "body" : "{\"username\": \"john.doe\"}"
          }
        }
      ]
    }

    In diesem Beispiel gibt eine Anforderung an den /test-redirect-Pfad einen 302-Statuscode und eine temporäre URL im Location-Header der Antwort zurück. Dieses Beispiel zeigt auch, dass Sie eine API-Deployment-Spezifikation mit nur einer Route zu einem Backend vom Typ STOCK_RESPONSE_BACKEND erstellen können.

    {
      "routes": [
        {
          "path": "/test-redirect",
          "methods": ["GET"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": 302,
            "headers": [{
              "name": "Location",
              "value": "http://www.example.com"
            }]
          }
        }
      ]
    }
  3. Speichern Sie die JSON-Datei, die die API-Deployment-Spezifikation enthält.
  4. 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-Deployment in einem API-Gateway bereitstellen und API-Gateway aktualisieren.

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