Anfrage- und Antwortvariablen

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Wenn Sie eine Anfrage an einen API-Proxy senden, können Sie abhängig von der Konfiguration des API-Proxys einige oder alle der folgenden Informationen übergeben:

  • Anfrageheader
  • Abfrageparameter
  • Formulardaten
  • XML- oder JSON-Nutzlasten
  • Ressourcen-URIs

Standardmäßig werden alle Daten in einer Anfrage unverändert vom ProxyEndpoint an den TargetEndpoint übergeben. Aus diesem Grund werden alle Informationen in der ursprünglichen Anfrage an den Backend-Dienst übergeben, wenn TargetEndpoint die Anfrage an den Backend-Server sendet.

Dasselbe gilt für die Antwort, die von Edge vom Back-End-Dienst empfangen wird. Standardmäßig werden alle in der Antwort empfangenen Daten unverändert an die Anwendung übergeben, von der die Anfrage stammt.

Wie werden Anfragedaten an den Backend-Server übergeben?

Die folgende Abbildung zeigt eine API-Proxy-Definition:

Die Anfrage vom HTTP-Client wird vom Proxy-Endpunkt an den Ziel-Endpunkt im Back-End weitergeleitet, um den HTTP-Dienst zu erreichen. Beispiele für den Proxy-Endpunkt und Zielendpunkt werden bereitgestellt.

Für diesen API-Proxy:

  • Virtueller API-Proxy-Host: „Standard“
  • Vom virtuellen Host definierte Domain: „http://myOrg-prod.apigee.net“
  • Proxy-Basispfad: „/v1/weather“
  • TargetEndpoint-Spezifikation nach Routingregel: „default“
  • Ziel-URL: „http://weather.yahooapis.com“

Eine Clientanwendung sendet mit dem folgenden curl-Befehl eine GET-Anfrage an den API-Proxy:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Beachten Sie, dass diese Anfrage die Ressource "forecastrss" und den Abfrageparameter w enthält. Edge parst die Anforderung wie unten gezeigt und weist Teile der Anforderung Flussvariablen zu:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

Die Ablaufvariablen werden mit den folgenden Werten festgelegt:

  • request.verb: „GET“
  • proxy.basepath: „/v1/weather“
  • proxy.pathsuffix: "forecastrss"
  • request.querystring: "w=12797282"

Der TargetEndpoint stellt dann mithilfe von Informationen aus der Anfrage eine Anfrage an den Backend-Dienst:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

Beachten Sie, wie die in der Anfrage angegebenen Ressourcen- und Abfrageparameter automatisch in die Anfrage an den Backend-Server aufgenommen werden. Nach der Definition des TargetEndpoint hat die Anfrage dann das folgende Format:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

Wie bei Abfrageparametern werden alle Header oder Formularparameter, die Sie in die Anfrage an den API-Proxy aufnehmen, an den Backend-Server weitergeleitet. Hier sehen Sie ein Beispiel für eine Anfrage mit einem Header:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Oder eine Anfrage im folgenden Format, um einen Header und Formulardaten aufzunehmen:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

In beiden Beispielen werden die Header und Formulardaten unverändert an den Backend-Dienst übergeben. Die Header werden durch Ablaufvariablen wie request.headers.count und request.headers.names dargestellt. Die Formulardaten werden durch Ablaufvariablen wie request.formparam.count und request.formparam.names dargestellt.

Wie werden Antwortdaten zurückgegeben?

Standardmäßig werden alle Daten, die von dem Backend-Dienst in der Antwort empfangen werden, an die Anwendung, die die Anfrage gesendet hat, geändert. Wie oben für die Anfrage beschrieben, sind die in der Antwort zurückgegebenen Daten über Flussvariablen in Edge zugänglich. Weitere Informationen finden Sie unter Referenz zu Ablaufvariablen.

Zugriffs- und Antwortdaten in einem API-Proxy

Oft müssen Sie die Anfragedaten ändern, bevor Sie sie an den Backend-Server senden. Beispiel:

  • Entfernen von Sicherheitsinformationen, die von Edge zum Prüfen von Anfragen verwendet werden. Diese Informationen sind für den Backend-Dienst nicht erforderlich.
  • So fügen Sie dem Backend-Dienst gesendete Daten hinzu, um beispielsweise Nutzer oder Analysen zu erfassen.
  • Um die Anfrage auf Grundlage von Anfragedaten bedingt zu verarbeiten. Ein API-Proxy kann beispielsweise mehrere TargetEndpoints enthalten. Der von der Anfrage verwendete TargetEndpoint wird von den Anfragedaten bestimmt. Sie entfernen die Daten anschließend aus der Anfrage, bevor Sie sie an den Backend-Dienst senden.

Das gilt auch für Daten in der Antwort. Im Rahmen der Verarbeitung der Antwort möchte der API-Proxy möglicherweise die Daten ändern, bevor er sie an die anfordernde Anwendung zurückgibt.

Auf Anfragenachrichten zugreifen

Sie können Richtlinien verwenden, um Teile von Anfragenachrichten aufzurufen und zu ändern. Dazu gehören:

  • Header
  • Suchparameter
  • Formularparameter
  • IP-Adresse der Quelle
  • HTTP-Nachrichtentext

In einem normalen Ablauf sendet der Proxy die transformierte Anfrage an das Ziel, sobald die Anfrage verarbeitet wurde.

Richtlinien können Anfragevariablen untersuchen, die dann basierend auf dem Inhalt dieser Variablen umgewandelt oder abgelehnt werden. Richtlinien transformieren die Anfrage. Dazu legen sie die entsprechenden Variablen fest, z. B. Variablen, die den Anfrage-Headern entsprechen.

Zugriff auf Antwortnachrichten

Mithilfe der Variablen, die für die Antwortnachricht gelten, können Richtlinien auf Nachrichtenkomponenten zugreifen, einschließlich des Headers, der Abfrageparameter und Formularparameter, der Quell-IP-Adresse, des HTTP-Nachrichtentexts usw.

Der Proxy empfängt eine Antwort und wendet sie anschließend auf eine Reihe von Richtlinien an, die auf den für die Antwort ausgewerteten Bedingungen basieren. Diese können die Antwort ändern oder transformieren.

Richtlinien können Antwortvariablen untersuchen, die dann basierend auf dem Inhalt dieser Variablen umgewandelt oder abgelehnt werden. Richtlinien transformieren die Antwort durch Festlegen der entsprechenden Variablen, z. B. Variablen, die den Antwortheadern entsprechen.

Allgemeine Richtlinien für den Zugriff auf Ablaufvariablen

Edge definiert mehrere Richtlinien, mit denen Sie die Anfrage- und Antwortdaten verarbeiten können. Zu den Richtlinien gehören: