Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Giriş
Node.js uygulamasında Apigee Edge akış değişkenlerine erişmek için apigee-access
modülünü kullanın. Modülde değişkenleri alma, ayarlama ve silme yöntemleri vardır. Ayrıca, tam sayı değişkeni ayarlamak için de kullanışlı bir yöntem vardır.
Akış değişkenleri, bir API proxy akışı bağlamında bulunur. Bazı değişkenler Edge'de "yerleşiktir". Bazıları ise politikalar yürütüldüğünde oluşturulur ve kendi değişkenlerinizi oluşturabilirsiniz. Akış değişkenleri genellikle bir politikadan diğerine veri aktarmak ve koşullu akışlarda koşul belirlemek için kullanılır. Akış değişkenleri hakkında bilgi için Akış değişkenleri ve koşulları bölümünü inceleyin.
apigee-access
modülü ve diğer özellikleriyle ilgili tanıtım için Apigee-access modülünü kullanma konusuna bakın.
Çalışan örnek
İstek akış yolunda çalışan bir Edge politikasının AuthenticatedUserId
adlı bir değişken ayarladığını düşünün. Aşağıdaki kod bu değişkene erişir ve değişkeni bir günlüğe yazdırır. Ayrıca, bu kod bir değişken ayarlar. Ardından, bu değişkene aşağıda açıkladığımız bir politikadan erişebilirsiniz.
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/');
Bu kodu bir JavaScript dosyasına kopyalayabilir, Edge'e dağıtabilir ve deneyebilirsiniz. Dosyayı server.js
çağırın. Dağıtmak için şunu kullanın:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Uygulamayı Edge'e dağıttıktan sonra ProxyEndpoint istek akışına aşağıdaki yapılandırmaya sahip birassignMessage politikası ekleyin:
<?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>
Ardından, TargetEndpoint yanıtı ön akışına başka bir AtaticMessage politikası ekleyin:
<?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>
Proxy'yi şu şekilde çağırabilirsiniz:
curl -i http://myorg-test.apigee.net/access
Şimdi yönetim kullanıcı arayüzünde erişim proxy'si sayfasına gidin ve Geliştirme görünümünü açın. Proxy'den günlük çıkışını görüntülemek için Node.js Günlükleri'ni tıklayın. Proxy düzgün bir şekilde yapılandırılmışsa userId değişkeninin ayarlandığını görürsünüz. Terminal pencerenizdeki cURL çıkışında da başlığın ayarlandığını görürsünüz:
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
Yöntemler
getVariable
var result = getVariable(httpRequest, name);
Adlandırılmış bir değişken alır.
Parametreler:
httpRequest
: http modülünden gelen istek nesnesi.name
: (Dize) Alınacak değişkenin adı.
İade et:
setVariable() kullanılarak ayarlanan türe, başka bir yerde sizin tarafınızdan veya bir politika tarafından oluşturulduğu zamana bağlı olarak bir dize veya sayı. Kullanıma hazır Edge değişkenlerinden birine erişiyorsanız türlerin listesini Değişkenler Referansı bölümünde bulabilirsiniz. Politikalar tarafından oluşturulan değişken türleri için ilgili politika referansı konusuna bakın.
Örnekler:
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);
Değişken ayarlar. Bazı değişkenler salt okunurdur ve bunlardan birini ayarlamaya çalışırsanız setVariable() yöntemi bir istisna atar. Hangi değişkenlerin salt okunur olduğunu belirlemek için Değişkenler Referansı'na bakın.
Parametreler:
httpRequest
: http modülünden gelen istek nesnesi.name
: (Dize) Alınacak değişkenin adı.value
: Bir sayı, Dize, boole, null veya tanımsız olabilir.
Örnek:
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);
setIntVariable() yöntemi, önce değer parametresini bir tam sayıya dönüştüren ve ardından ayarlayan kullanışlı bir yöntemdir.
Parametreler:
httpRequest
: http modülünden gelen istek nesnesi.name
: (Dize) Ayarlanacak değişkenin adı.value
: Değer parametresi bir dize veya sayı olmalıdır.
Örnek:
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
Adlandırılmış değişkeni siler. Salt okunur bir değişkenin silinmesi hatadır. Salt okunur değişkenlerin tam listesi için Değişkenler Referansı'nı inceleyin.
deleteVariable(httpRequest, name);
Parametreler:
httpRequest
: http modülünden gelen istek nesnesi.name
: (Dize) Silinecek değişkenin adı.
Örnek:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');