Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Giriş
Apigee Edge akışına erişmek için apigee-access
modülünü kullanın
değişkenlerini kullanmanız gerekir. Modülde değişkenleri alma, ayarlama ve silme yöntemleri vardır. Ayrıca, bir tam sayı değişkenini ayarlamak için pratik bir yönteme sahiptir.
Akış değişkenleri, bir API proxy akışı bağlamında bulunur. Bazı değişkenler "yerleşik"tir - Kenar. Diğerleri, politikalar yürütüldüğünde oluşturulur ve siz de kendi değişkenlerinizi oluşturabilirsiniz. Akış değişkenler genellikle verileri bir politikadan diğerine aktarmak ve koşul belirlemek için kullanılır bir örneğidir. Akış değişkenleri hakkında bilgi için Akış değişkenleri ve koşulları hakkında daha fazla bilgi edinin.
apigee-access
modülü ve diğer özelliklerine giriş için bkz.
Apigee-access modülünü kullanma.
Çalışma örneği
İstek akış yolunda çalışan bir Edge politikasının
AuthenticatedUserId
Aşağıdaki kod bu değişkene erişir ve değişkeni
. Ayrıca, bu kod bir değişken ayarlar. Ardından, bu değişkene bir politikadan erişebilirsiniz.
Bunlar aşağıda gösterilmiştir.
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ğıtıp deneyebilirsiniz. Şunu çağırın:
server.js
dosyası oluşturun. 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 aşağıdakilerle birlikte bir QueryMessage politikası ekleyin ProxyEndpoint istek akışı için yapılandırma uygulayın:
<?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 QueryMessage 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 arayüzündeki erişim proxy'sinin sayfasına gidin ve Geliştirme görünümü. Günlük çıkışını şuradan görüntülemek için Node.js Günlükleri'ni tıklayın: değiştirmiyor. Proxy düzgün şekilde yapılandırılmışsa userId değişkeninin ayarlandığını görürsünüz. Terminal pencerenizdeki cURL çıkışında başlığın ayarlandığını da 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ı.
Şunu döndürür:
Bir dize veya sayı, oluşturduğunuz veya bir politika tarafından oluşturulduğu durumlar. kullanıma hazır Edge değişkenlerinde, türlerin listesini Değişken Referansı bölümünde bulabilirsiniz. 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 setVariable() yöntemi bir istisna olarak ayarlayabilirsiniz. Hangi değişkenlerin salt okunur olduğunu belirlemek için Değişkenler Referans.
Parametreler:
httpRequest
: http modülünden gelen istek nesnesi.name
: (Dize) Alınacak değişkenin adı.value
: Sayı, String, boole, null veya undefined 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, ad, değer);
setIntVariable() yöntemi, ilk olarak değer parametresini bir tam sayı ve daha sonra bunu ayarlar.
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ış bir değişkeni siler. Salt okunur bir değişkenin silinmesi hatadır. Eksiksiz bir listesi için Değişkenler Referansı'na bakın.
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');