Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Einführung
Verwenden Sie das apigee-access Modul, um in einer Node.js-Anwendung auf Apigee Edge Ablauf
variablen zuzugreifen. Das Modul enthält Methoden zum Abrufen, Festlegen und Löschen von Variablen. Außerdem gibt es eine praktische Methode zum Festlegen einer ganzzahligen Variablen.
Ablaufvariablen existieren im Kontext eines API-Proxy-Ablaufs. Einige Variablen sind in Edge „integriert“. Andere werden bei der Ausführung von Richtlinien erstellt und Sie können auch eigene Variablen erstellen. Ablauf variablen werden in der Regel verwendet, um Daten von einer Richtlinie an eine andere zu übergeben und um Bedingungen in bedingten Abläufen festzulegen. Weitere Informationen zu Ablaufvariablen finden Sie unter Ablaufvariablen und -bedingungen.
Eine Einführung in das apigee-access Modul und seine anderen Funktionen finden Sie unter
Das Modul „apigee-access“ verwenden.
Beispiel
Angenommen, eine Edge-Richtlinie, die im Anfrageablauf ausgeführt wird, legt eine Variable mit dem Namen
AuthenticatedUserId fest. Der folgende Code greift auf diese Variable zu und gibt sie in einem
Log aus. Außerdem wird mit diesem Code eine Variable festgelegt. Sie können dann über eine Richtlinie auf diese Variable zugreifen,
wie unten gezeigt.
var http = require('http'); var apigee = require('apigee-access'); http.createServer(function (request, response) { // The request parameter must be a request object that came from the http module var userId = apigee.getVariable(request, 'AuthenticatedUserId'); apigee.setVariable(request, "custom.foo", "Bar"); console.log('Authenticated Apigee User ID is %s', userId); response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');
Sie können diesen Code in eine JavaScript-Datei kopieren, in Edge bereitstellen und testen. Nennen Sie die
Datei server.js. Verwenden Sie zum Bereitstellen:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Nachdem Sie die Anwendung in Edge bereitgestellt haben, fügen Sie dem ProxyEndpoint-Anfrageablauf eine AssignMessage-Richtlinie mit der folgenden Konfiguration hinzu:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="AddUserId"> <DisplayName>AddUserId</DisplayName> <FaultRules/> <Properties/> <AssignVariable> <Name>AuthenticatedUserId</Name> <Value>ntesla</Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Hängen Sie als Nächstes eine weitere AssignMessage-Richtlinie an den Antwort-PreFlow des TargetEndpoint an:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="SetHeader"> <DisplayName>SetHeader</DisplayName> <FaultRules/> <Properties/> <Set> <Headers> <Header name="MySpecialHeader">{custom.foo}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Sie können den Proxy so aufrufen:
curl -i http://myorg-test.apigee.net/access
Rufen Sie nun in der Management-UI die Seite des Zugriffsproxys auf und öffnen Sie die Entwickeln Ansicht. Klicken Sie auf Node.js-Logs , um die Logausgabe von dem Proxy aufzurufen. Wenn der Proxy richtig konfiguriert ist, sehen Sie, dass die Variable „userId“ festgelegt wurde. Außerdem sehen Sie, dass der Header in der cURL-Ausgabe in Ihrem Terminalfenster festgelegt wurde:
HTTP/1.1 200 OK Content-Type: text/plain Date: Tue, 27 05 2014 23:20:52 GMT MySpecialHeader: Bar Content-Length: 12 Connection: keep-alive
Methoden
getVariable
var result = getVariable(httpRequest, name);
Ruft eine benannte Variable ab.
Parameter :
httpRequest: Das Anfrageobjekt aus dem Modul „http“.name: (String) Der Name der abzurufenden Variablen.
Gibt zurück :
Eine String oder eine Zahl, je nach Typ, der mit setVariable() festgelegt wurde, wenn sie an anderer Stelle von Ihnen erstellt wurde oder wenn sie von einer Richtlinie erstellt wurde. Wenn Sie auf eine der Standardvariablen von Edge zugreifen, finden Sie eine Liste der Typen in der Variablenreferenz. Informationen zu Variablentypen , die von Richtlinien erstellt wurden, finden Sie im entsprechenden Referenzthema zur Richtlinie.
Beispiele :
var apigee = require('apigee-access'); // "httpRequest" must be a request object that came from the http module var val1 = apigee.getVariable(request, 'TestVariable'); var val2 = apigee.getVariable(request, 'request.client.ip');
setVariable
setVariable(httpRequest, name, value);
Legt eine Variable fest. Einige Variablen sind schreibgeschützt. Die Methode setVariable() löst eine Ausnahme aus, wenn Sie versuchen, eine dieser Variablen festzulegen. Welche Variablen schreibgeschützt sind, erfahren Sie in der Variablen referenz.
Parameter :
httpRequest: Das Anfrageobjekt aus dem Modul „http“.name: (String) Der Name der abzurufenden Variablen.value: Kann eine Zahl, ein String, ein boolescher Wert, „null“ oder „undefined“ sein.
Beispiel :
var apigee = require('apigee-access'); apigee.setVariable(request, 'TestVariable', 'bar'); // This will throw an exception because client.ip is read-only. apigee.setVariable(request, 'client.ip');
setIntVariable
setIntVariable(httpRequest, name, value);
Die Methode setIntVariable() ist eine praktische Methode, die den Parameter „value“ zuerst in eine Ganzzahl umwandelt und dann festlegt.
Parameter :
httpRequest: Das Anfrageobjekt aus dem Modul „http“.name: (String) Der Name der festzulegenden Variablen.value: Der Parameter „value“ muss ein String oder eine Zahl sein.
Beispiel :
var apigee = require('apigee-access'); // Convert "123" to an integer and set it apigee.setIntVariable(request, 'TestVariable', '123'); // Use something that's already a number apigee.setIntVariable(request, 'TestVariable2', 42);
deleteVariable
Löscht eine benannte Variable. Das Löschen einer schreibgeschützten Variablen führt zu einem Fehler. Eine vollständige Liste der schreibgeschützten Variablen finden Sie in der Variablenreferenz.
deleteVariable(httpRequest, name);
Parameter :
httpRequest: Das Anfrageobjekt aus dem Modul „http“.name: (String) Der Name der zu löschenden Variablen.
Beispiel :
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');