Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Introduzione
Utilizza il modulo apigee-access
per accedere al flusso Apigee Edge
variabili in un'applicazione Node.js. Il modulo presenta metodi per ottenere, impostare ed eliminare le variabili. Presenta inoltre un metodo pratico per impostare una variabile di numeri interi.
Le variabili di flusso esistono nel contesto di un flusso proxy API. Alcune variabili sono "integrate" a perimetrali. Altre vengono create quando i criteri vengono eseguiti e puoi creare le tue variabili. Flusso vengono in genere utilizzate per trasferire dati da un criterio a un altro e per impostare le condizioni nei flussi condizionali. Per informazioni sulle variabili di flusso, consulta Variabili di flusso e .
Per un'introduzione al modulo apigee-access
e alle sue altre funzionalità, vedi
Utilizzo del modulo apigee-access.
Esempio funzionante
Immagina che un criterio perimetrale in esecuzione sul percorso del flusso della richiesta imposti una variabile chiamata
AuthenticatedUserId
. Il seguente codice accede a tale variabile e la stampa in un
log. Inoltre, questo codice imposta una variabile. Puoi quindi accedere alla variabile da un criterio
come illustrato di seguito.
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/');
Puoi copiare questo codice in un file JavaScript, eseguirne il deployment su Edge e provarlo. Chiama il
file server.js
. Per eseguirne il deployment, utilizza:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Dopo aver eseguito il deployment dell'applicazione su Edge, aggiungi un criterioAssignMessage con quanto segue configurazione al flusso di richiesta ProxyEndpoint:
<?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>
Quindi, collega un altro criterioAssignMessage al preflusso di risposta TargetEndpoint:
<?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>
Puoi chiamare il proxy nel seguente modo:
curl -i http://myorg-test.apigee.net/access
A questo punto, vai alla pagina del proxy di accesso nell'interfaccia utente di gestione e visualizza la Sviluppa. Fai clic su Node.js Logs per visualizzare l'output di log da il proxy. Se il proxy è configurato correttamente, la variabile userId è stata impostata. Vedrai anche che l'intestazione è stata impostata nell'output cURL nella finestra del terminale:
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
Metodi
getVariable
var result = getVariable(httpRequest, name);
Ottiene una variabile con nome.
Parametri:
httpRequest
: l'oggetto di richiesta proveniente dal modulo http.name
: (stringa) il nome della variabile da recuperare.
Resi:
Una stringa o un numero, a seconda del tipo impostato con setVariable(), quando era creato da te altrove o quando è stato creato da una norma. Se accedi a uno dei Per le variabili perimetrali pronte all'uso, puoi trovare un elenco di tipi nel Riferimento alle variabili. Per i tipi di variabili create dai criteri, consulta l'argomento specifico di riferimento alle norme.
Esempi:
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);
Imposta una variabile. Alcune variabili sono di sola lettura e il metodo setVariable() genera se provi a impostarne uno. Per determinare quali variabili sono di sola lettura, consulta la colonna Variabili Riferimento.
Parametri:
httpRequest
: l'oggetto di richiesta proveniente dal modulo http.name
: (stringa) il nome della variabile da recuperare.value
: può essere un numero, una stringa, un valore booleano, nullo o non definito.
Esempio:
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);
Il metodo setIntVariable() è un metodo di convenienza che prima costringe il parametro value a un numero intero e lo imposta.
Parametri:
httpRequest
: l'oggetto di richiesta proveniente dal modulo http.name
: (stringa) il nome della variabile da impostare.value
: il parametro valore deve essere una stringa o un numero.
Esempio:
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
Elimina una variabile con nome. L'eliminazione di una variabile di sola lettura è un errore. Per un di variabili di sola lettura, consulta Riferimento sulle variabili.
deleteVariable(httpRequest, name);
Parametri:
httpRequest
: l'oggetto di richiesta proveniente dal modulo http.name
: (stringa) il nome della variabile da eliminare.
Esempio:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');