Pfadparameter und Platzhalter zu Routenpfaden hinzufügen

Erfahren Sie, wie Sie Routenpfaden in API-Deployment-Spezifikationen mit API Gateway Pfadparameter und Platzhalter hinzufügen.

Möglicherweise möchten Sie verschiedene API-Anforderungen an dasselbe Backend weiterleiten, auch wenn die Anforderungs-URLs mehr oder weniger stark von der Routenpfaddefinition in der API-Deployment-Spezifikation abweichen.

Wenn Sie einen Routenpfad in einer API-Deployment-Spezifikation definieren, können Sie einen Pfadparameter aufnehmen, um ein einzelnes Segment des Pfads genau zu ersetzen. Falls erforderlich, können Sie mehrere Pfadparameter in den Routenpfad aufnehmen. Sie können auch den Sternchenplatzhalter (*) an einen Pfadparameter im Routenpfad anhängen, um so noch mehr Flexibilität bei der Identifizierung von Anforderungen zu bieten, die an dasselbe Backend gesendet werden sollen.

In den Beispielen zu diesem Thema wird davon ausgegangen, dass Sie Routenpfade zu einer API-Deployment-Spezifikation in einer JSON-Datei hinzufügen. Beachten Sie, dass diese Beispiele auch gelten, wenn Sie eine API-Deployment-Spezifikation mit Dialogfeldern in der Konsole definieren.

Beispiel: Pfadparameter zum Abgleich ähnlicher URLs hinzufügen

Möglicherweise müssen Sie Anforderungen mit ähnlichen URLs an dasselbe Backend weiterleiten. Beispiel:

  • https://<gateway-hostname>/marketing/hello/us/index.html
  • https://<gateway-hostname>/marketing/hello/apac/index.html
  • https://<gateway-hostname>/marketing/hello/emea/index.html

Damit Aufrufe an diese ähnlichen URLs im selben Backend aufgelöst werden können, fügen Sie einen in geschweiften Klammern eingeschlossenen Pfadparameternamen als das Segment des Routenpfads hinzu, das von API-Aufruf zu API-Aufruf variiert. Beispiel: {region} (wie folgendermaßen dargestellt):

{
  "routes": [
    {
      "path": "/hello/{region}/index.html",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}

Beachten Sie, dass Pfadparameternamen:

  • alphanumerische Groß- und Kleinbuchstaben enthalten können.
  • den Unterstrich _ als Sonderzeichen enthalten können.
  • keine weiteren Sonderzeichen enthalten können. Beachten Sie insbesondere, dass in Pfadparameternamen keine Leerzeichen, Schrägstriche und geschweiften Klammern eingefügt werden können.

Beispiel: Pfadparameter mit Platzhaltern zum Abgleich unterschiedlicher URLs hinzufügen

Möglicherweise müssen Sie Anforderungen an dasselbe Backend weiterleiten, auch wenn die Anforderungs-URLs signifikante Unterschiede aufweisen. Beispiel:

  • https://<gateway-hostname>/marketing/hello/us/index.html
  • https://<gateway-hostname>/marketing/hello/apac/introduction/
  • https://<gateway-hostname>/marketing/hello/emea/welcome.html
  • https://<gateway-hostname>/marketing/hello/introduction
  • https://<gateway-hostname>/marketing/hello/top.html
  • https://<gateway-hostname>/marketing/hello/

Damit Aufrufe an diese signifikant unterschiedlichen URLs im selben Backend aufgelöst werden können:

  • fügen Sie einen in geschweiften Klammern eingeschlossenen Pfadparameternamen als erstes Segment des Routenpfads hinzu, das von API-Aufruf zu API-Aufruf variiert.
  • fügen Sie den Sternchenplatzhalter (*) am Ende des Pfadparameternamens hinzu

Beispiel: {generic_welcome*} (wie folgendermaßen dargestellt):

{
  "routes": [
    {
      "path": "/hello/{generic_welcome*}",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    }
  ]
}

Beachten Sie, dass ein Pfadparametername mit einem Sternchenplatzhalter Folgendes abgleicht:

  • kein Pfadsegment
  • ein einzelnes Pfadsegment
  • mehrere Pfadsegmente