API-Deployment-Spezifikation erstellen

Erfahren Sie, wie Sie eine API-Spezifikation (eine maschinenlesbare Definition einer API im JSON-Format) zur Verwendung mit API Gateway erstellen.

Bevor Sie eine API in einem API-Gateway bereitstellen können, müssen Sie eine API-Deployment-Spezifikation erstellen. Jedes API-Deployment verfügt über eine API-Deployment-Spezifikation.

Jede API-Deployment-Spezifikation beschreibt ein Set von Ressourcen und die Methoden (z.B. GET, PUT), die für die einzelnen Ressourcen ausgeführt werden können.

Sie können ein einzelnes API-Gateway als Frontend für mehrere Backend-Services verwenden, indem Sie Folgendes tun:

  • Erstellen Sie ein einzelnes API-Deployment im API-Gateway mit einer API-Deployment-Spezifikation, die mehrere Backend-Services definiert.
  • Erstellen Sie mehrere API-Deployments im selben API-Gateway, wobei jedes API-Deployment eine API-Deployment-Spezifikation enthält, die einen (oder mehrere) Backend-Service(s) definiert.

In der Regel befinden sich Backend-Services im selben VCN wie das API-Gateway, in dem Sie eine API bereitstellen. Dies ist jedoch nicht unbedingt erforderlich. In der API-Deployment-Spezifikation können Sie Backend-Services beschreiben, die sich in einem privaten oder öffentlichen Subnetz innerhalb Ihres Mandanten befinden, sowie Services, die sich außerhalb Ihres Mandanten befinden (einschließlich solcher im öffentlichen Internet). Unabhängig davon, wo sie sich befinden, müssen die Backend-Services aus dem Subnetz geroutet werden können, das das API-Gateway enthält, in dem die API bereitgestellt wird. Beispiel: Wenn sich der Backend-Service im öffentlichen Internet befindet, muss das VCN über ein Internetgateway verfügen, damit das API-Gateway Anforderungen an den Backend-Service weiterleiten kann.

Sie können eine API-Deployment-Spezifikation folgendermaßen erstellen:

  • Mit Dialogfeldern in der Konsole beim Erstellen eines API-Deployments.
  • Mit Ihrem bevorzugten JSON-Editor zum Erstellen einer separaten JSON-Datei. Sie können die JSON-Datei angeben, wenn Sie die Konsole, die CLI oder die API zum Erstellen eines API-Deployments verwenden.
  • Mit einer API-Beschreibungsdatei, die Sie für eine API-Ressource hochladen. Die API-Beschreibungsdatei enthält einige Anfangswerte für die API-Deployment-Spezifikation, die Sie beim Bereitstellen der API-Ressource in einem API-Gateway ändern und erweitern können. Siehe API-Ressource mit einer API-Beschreibung erstellen.

Die Anweisungen in diesem Thema zeigen eine grundlegende API-Deployment-Spezifikation mit einem einzelnen Backend, einer einzelnen Route und keiner Anforderungs- bzw. Antwort-Policy. Unter Beispiel für eine API-Deployment-Spezifikation mit mehreren Backends finden Sie eine typischere API-Deployment-Spezifikation, die mehrere Backends mit jeweils einer oder mehreren Routen umfasst.

Außerdem können Sie Anforderungs- und Antwort-Policys hinzufügen, die für Routen in einer API-Deployment-Spezifikation gelten (siehe Anforderungs-Policys und Antwort-Policys zu API-Deployment-Spezifikationen hinzufügen).

JSON-Editor zum Erstellen einer API-Deployment-Spezifikation in einer separaten JSON-Datei verwenden

So erstellen Sie eine API-Deployment-Spezifikation in einer JSON-Datei:

  1. Erstellen Sie mit Ihrem bevorzugten JSON-Editor die API-Deployment-Spezifikation in einer JSON-Datei in folgendem Format:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "<backend-type>",
            "<backend-target>": "<identifier>"
          },
          "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".
    • <backend-type> gibt den Typ des Backend-Service an. Gültige Werte sind ORACLE_FUNCTIONS_BACKEND, HTTP_BACKEND und STOCK_RESPONSE_BACKEND.
    • <backend-target> und <identifier> geben den Backend-Service an. Gültige Werte für <backend-target> und <identifier> hängen wie folgt vom Wert für <backend-type> ab:

    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"
          }
        }
      ]
    }

    Ein komplexeres Beispiel, das mehrere Backends definiert, finden Sie unter Beispiel für eine API-Deployment-Spezifikation mit mehreren Backends.

  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.

API-Deployment-Spezifikation mit einer API-Beschreibungsdatei erstellen

Informationen zum Erstellen einer API-Deployment-Spezifikation basierend auf einer API-Beschreibungsdatei, die Sie für eine API-Ressource hochladen, finden Sie unter API-Ressource mit einer API-Beschreibung erstellen.

Die API-Beschreibungsdatei enthält einige Anfangswerte für die API-Deployment-Spezifikation, die Sie beim Bereitstellen der API-Ressource in einem API-Gateway ändern und erweitern können.

Beispiel für eine API-Deployment-Spezifikation mit mehreren Backends

Sie können ein einzelnes API-Deployment in einem API-Gateway mit einer API-Deployment-Spezifikation erstellen, die mehrere Backend-Services definiert.

Beispiel: Die folgende API-Deployment-Spezifikation definiert eine einfache serverseitige Hello World-Funktion in OCI Functions als ein Backend und die National Weather Service-API als zweites Backend.

{
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    },
    {
      "path": "/weather",
      "methods": ["GET"],
      "backend": {
        "type": "HTTP_BACKEND",
        "url": "https://api.weather.gov"
      }
    }
  ]
}