Abfrageparameter-Transformationsanforderungs-Policys hinzufügen

Sie können Abfrageparameter-Transformationsanforderungs-Policys zu API-Deployment-Spezifikationen mit der Konsole oder durch Bearbeiten einer JSON-Datei hinzufügen.

Abfrageparameter-Transformationsanforderungs-Policys mit der Konsole hinzufügen

So fügen Sie mit der Konsole Abfrageparameter-Transformationsanforderungs-Policys zu einer API-Deployment-Spezifikation hinzufügen:

  1. Erstellung oder Aktualisierung eines API-Deployments mit der Konsole, wählen Sie die Option Deployment erstellen aus, und geben Sie auf der Seite Basisinformationen Details ein.

    Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployments in einem API-Gateway implementieren und API-Gateways aktualisieren.

  2. Wählen Sie Weiter, und geben Sie Authentifizierungsoptionen auf der Seite Authentifizierung an.

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

  3. Wählen Sie Weiter aus, um Details für einzelne Routen im API-Deployment auf der Seite Routen einzugeben.

  4. Wählen Sie auf der Seite Routen die Route aus, für die Sie Abfrageparameter-Transformationsanforderungs-Policys angeben möchten.
  5. Wählen Sie Routenanforderungs-Policys anzeigen aus.
  6. Wählen Sie neben Abfrageparametertransformationen die Schaltfläche Hinzufügen, um die Abfrageparameter zu aktualisieren, die in einer Anforderung an das API-Gateway für die aktuelle Route enthalten sind.
  7. Um die in einer Anforderung enthaltenen Abfrageparameter zu begrenzen, geben Sie Folgendes an:

    • Aktion: Filtern.
    • Typ: Entweder Blockieren, um die explizit aufgelisteten Abfrageparameter aus der Anforderung zu entfernen, oder Zulassen, um nur die explizit aufgelisteten Abfrageparameter in der Anforderung zuzulassen (alle anderen Abfrageparameter werden aus der Anforderung entfernt).
    • Abfrageparameternamen: Die Liste der Abfrageparameter, die aus der Anforderung entfernt oder in der Anforderung zugelassen werden sollen (je nach der Einstellung im Typ). Bei den angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem dürfen sie nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente, die Sie als zugelassen filtern). Beispiel: User-Agent.
  8. Um den Namen eines Abfrageparameters in einer Anforderung (unter Beibehaltung des ursprünglichen Wertes) zu ändern, geben Sie Folgendes an:

    • Aktion: Umbenennen.
    • Abfrageparametername: Der ursprüngliche Name des Abfrageparameters, den Sie umbenennen möchten. Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein. Beispiel: X-Username.
    • Neuer Abfrageparametername: Der neue Name des Abfrageparameters, den Sie umbenennen möchten. Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente, die Sie als zugelassen filtern). Beispiel: X-User-ID.
  9. Um einer Anforderung einen neuen Abfrageparameter hinzuzufügen (oder die Werte eines bereits in einer Anforderung enthaltenen Abfrageparameters zu ändern), geben Sie Folgendes an:

    • Aktion: Festlegen.
    • Verhalten: Wenn der Abfrageparameter bereits vorhanden ist, geben Sie an, was Sie mit dem vorhandenen Wert des Abfrageparameters tun möchten:

      • Überschreiben, um den vorhandenen Wert des Abfrageparameters durch den angegebenen Wert zu ersetzen.
      • Anhängen, um den angegebenen Wert an den vorhandenen Wert des Abfrageparameters anzuhängen.
      • Überspringen, um den vorhandenen Wert des Abfrageparameters beizubehalten.
    • Abfrageparametername: Der Name des Abfrageparameters, der der Anforderung hinzugefügt (oder deren Wert geändert werden soll). Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente, die Sie als zugelassen filtern). Beispiel: X-Api-Key.
    • Werte: Der Wert des neuen Abfrageparameters (oder der Wert, der den Wert eines vorhandenen Abfrageparameters ersetzen oder daran angehängt werden soll, je nach der Einstellung im Feld Verhalten). Der angegebene Wert kann eine einfache Zeichenfolge sein oder kontextabhängige Variablen enthalten, die in Begrenzungszeichen (${...}) eingeschlossen sind. Beispiel: "value": "zyx987wvu654tsu321", "value": "${request.path[region]}", "value": "${request.headers[opc-request-id]}". Sie können mehrere Werte angeben.
  10. Wählen Sie Aktualisieren aus.
  11. Wählen Sie Aktualisieren, Weiter aus, um die Details zu prüfen, die Sie für einzelne Routen eingegeben haben.
  12. Wählen Sie Erstellen oder Aktualisieren aus, um das API-Deployment zu erstellen oder aktualisiert zu werden.
  13. (Optional) Bestätigen Sie, dass die API erfolgreich bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).

Abfrageparameter-Transformationsanforderungs-Policys durch Bearbeiten einer JSON-Datei hinzufügen

So fügen Sie Abfrageparameter-Transformationsanforderungs-Policys 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 Abfrageparameter-Transformationsanforderungs-Policys hinzufügen möchten, oder erstellen Sie eine neue API-Deployment-Spezifikation (siehe API-Deployment-Spezifikation erstellen).

    Beispiel: Die folgende grundlegende API-Deployment-Spezifikation 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 einen requestPolicies-Abschnitt nach dem backend-Abschnitt für die Route ein, auf die die Abfrageparameter-Transformationsanforderungs-Policy angewendet werden soll. Beispiel:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {}
        }
      ]
    }
  3. Fügen Sie dem Abschnitt requestPolicies einen queryParameterTransformations-Abschnitt hinzu.

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations":{}
          }
        }
      ]
    }
  4. Um die Abfrageparameter in einer Anforderung zu begrenzen, geben Sie eine Abfrageparameter-Transformationsanforderungs-Policy vom Typ filterQueryParameters an:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "filterQueryParameters": {
                "type": "<BLOCK|ALLOW>",
                "items": [
                  {
                    "name": "<query-parameter-name>"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    Dabei gilt:

    • "type": "<BLOCK|ALLOW>" gibt an, was mit den von "items":[{"name":"<query-parameter-name>"}] angegebenen Abfrageparametern geschehen soll:
      • Verwenden Sie BLOCK, um die explizit aufgelisteten Abfrageparameter aus der Anforderung zu entfernen.
      • Verwenden Sie ALLOW, um in der Anforderung nur die explizit aufgelisteten Abfrageparameter zuzulassen (alle anderen Abfrageparameter werden aus der Anforderung entfernt).
    • "name":"<query-parameter-name> ist ein Abfrageparameter, der aus der Anforderung entfernt oder in ihr zugelassen werden soll (je nach der Einstellung unter "type": "<BLOCK|ALLOW>"). Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente in ALLOW-Listen). Beispiel: User-Agent.

    Sie können bis zu 50 Abfrageparameter in einer Abfrageparameter-Transformationsanforderungs-Policy vom Typ filterQueryParameters entfernen und zulassen.

    Beispiel:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "filterQueryParameters": {
                "type": "BLOCK",
                "items": [
                  {
                    "name": "User-Agent"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    In diesem Beispiel entfernt das API-Gateway den Abfrageparameter User-Agent aus allen eingehenden Anforderungen.

  5. Um den Namen eines Abfrageparameters in einer Anforderung (unter Beibehaltung des ursprünglichen Wertes) zu ändern, geben Sie eine Abfrageparameter-Transformationsanforderungs-Policy vom Typ renameQueryParameters an:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "renameQueryParameters": {
                "items": [
                  {
                    "from": "<original-name>",
                    "to": "<new-name>"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    Dabei gilt:

    • "from": "<original-name>" ist der ursprüngliche Name des Abfrageparameters, den Sie umbenennen möchten. Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein. Beispiel: X-Username.
    • "to": "<new-name>" ist der neue Name des Abfrageparameters, den Sie umbenennen möchten. Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente in ALLOW-Listen). Beispiel: X-User-ID.

    Sie können bis zu 20 Abfrageparameter in einer Abfrageparameter-Transformationsanforderungs-Policy vom Typ renameQueryParameters umbenennen.

    Beispiel:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "renameQueryParameters": {
                "items": [
                  {
                    "from": "X-Username",
                    "to": "X-User-ID"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    In diesem Beispiel benennt das API-Gateway alle X-Username-Abfrageparameter in X-User-ID um, wobei der ursprüngliche Wert des Abfrageparameters beibehalten wird.

  6. Um einer Anforderung einen neuen Abfrageparameter hinzuzufügen (oder die Werte eines vorhandenen Abfrageparameters zu ändern oder beizubehalten, der bereits in einer Anforderung enthalten ist), geben Sie eine Abfrageparameter-Transformationsanforderungs-Policy vom Typ setQueryParameters an:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "setQueryParameters": {
                "items": [
                  {
                    "name": "<query-parameter-name>",
                    "values": ["<query-parameter-value>"],
                    "ifExists": "<OVERWRITE|APPEND|SKIP>"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    Dabei gilt:

    • "name": "<query-parameter-name>" ist der Name des Abfrageparameters, der der Anforderung hinzugefügt (oder dessen Wert geändert) werden soll. Bei dem angegebenen Namen muss die Groß-/Kleinschreibung beachtet werden. Außerdem darf er nicht in anderen Transformationsanforderungs-Policys für die Route enthalten sein (mit Ausnahme der Elemente in ALLOW-Listen). Beispiel: X-Api-Key.
    • "values": ["<query-parameter-value>"] ist der Wert des neuen Abfrageparameters (oder der Wert, der den Wert eines vorhandenen Abfrageparameters ersetzen oder daran angehängt werden soll, je nach der Einstellung unter "ifExists": "<OVERWRITE|APPEND|SKIP>"). Der angegebene Wert kann eine einfache Zeichenfolge sein oder kontextabhängige Variablen enthalten, die in Begrenzungszeichen (${...}) eingeschlossen sind. Beispiel: "values": "zyx987wvu654tsu321", "values": "${request.path[region]}", "values": "${request.headers[opc-request-id]}".

      Sie können bis zu 10 Werte angeben. Wenn Sie mehrere Werte angeben, fügt das API-Gateway einen Abfrageparameter für jeden Wert hinzu.

    • "ifExists": "<OVERWRITE|APPEND|SKIP>" gibt an, was mit dem vorhandenen Wert des Abfrageparameters geschehen soll, wenn der von <query-parameter-name> angegebene Abfrageparameter bereits vorhanden ist:

      • Verwenden Sie OVERWRITE, um den vorhandenen Wert des Abfrageparameters durch den angegebenen Wert zu ersetzen.
      • Verwenden Sie APPEND, um den angegebenen Wert an den vorhandenen Wert des Abfrageparameters anzuhängen.
      • Verwenden Sie SKIP, um den vorhandenen Wert des Abfrageparameters beizubehalten.

      Wenn kein Wert angegeben ist, wird standardmäßig OVERWRITE verwendet.

    Sie können bis zu 20 Abfrageparameter in einer Abfrageparameter-Transformationsanforderungs-Policy vom Typ setQueryParameters hinzufügen (oder die Werte der Abfrageparameter ändern).

    Beispiel:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          },
          "requestPolicies": {
            "queryParameterTransformations": {
              "setQueryParameters": {
                "items": [
                  {
                    "name": "X-Api-Key",
                    "values": ["zyx987wvu654tsu321"],
                    "ifExists": "OVERWRITE"
                  }
                ]
              }
            }
          }
        }
      ]
    }

    In diesem Beispiel fügt das API-Gateway allen eingehenden Anforderungen den Abfrageparameter X-Api-Key:zyx987wvu654tsu321 hinzu. Wenn für eine eingehende Anforderung bereits ein X-Api-Key-Abfrageparameter auf einen anderen Wert gesetzt ist, ersetzt das API-Gateway den vorhandenen Wert durch zyx987wvu654tsu321.

  7. Speichern Sie die JSON-Datei, die die API-Deployment-Spezifikation enthält.
  8. 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 implementieren und API-Gateways aktualisieren.

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