<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
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:
Für diesen API-Proxy:
- Virtueller API-Proxy-Host: „Standard“
- Vom virtuellen Host definierte Domain: „http://myOrg-prod.apigee.net“
- Proxy-Basispfad: „/v1/weather“
- Durch Routingregel angegebener TargetEndpoint: „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 Anfrage als
wie unten dargestellt und Teile der Anfrage werden Flussvariablen zugewiesen:
{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 von Edge vom Back-End-Dienst in der Antwort empfangenen Daten übergeben. unverändert für die App sein, von der die Anfrage stammt. Wie oben für die Anfrage beschrieben, werden die Daten die in der Antwort zurückgegeben werden, ist ü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:
- Zum Entfernen von Sicherheitsinformationen, die von Edge zum Validieren 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, die Sie verwenden können, um die Anforderungs- und Antwortdaten zu verarbeiten. Zu den Richtlinien gehören:
- AssignMessage-Richtlinie: Erstellt oder ändert HTTP-Anfrage- oder Antwortnachrichten während eines API-Proxy-Ablaufs. Erstellt und füllt neue Ablaufvariablen.
- ExtractVariables-Richtlinie: Extrahiert Inhalte aus Nachrichten, einschließlich Headern, URI-Pfaden, Nutzdaten und Abfrageparametern, zur Verwendung in einer Bedingungsanweisung. Die Richtlinie wendet anschließend ein Textmuster auf den Nachrichteninhalt an. Nach der Suche nach einer Übereinstimmung wird eine bestimmte Variable festgelegt.
- JSONtoXML-Richtlinie und XMLtoJSON-Richtlinie: Nachrichten aus JavaScript Object Notation (JSON) werden in das XML-Format (Extensible Markup Language) oder umgekehrt konvertiert.
- JavaCallout-Richtlinie, JavaScript-Richtlinie, PythonScript-Richtlinie, ReguläreExpressionProtection-Richtlinie: Mit diesen Richtlinien können Sie ein Skript für den Zugriff auf die Ablaufvariablen schreiben, die Anfrage- und Antwortdaten enthalten.