Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Pengantar
Gunakan modul apigee-access untuk mengakses variabel
alur Apigee Edge dalam aplikasi Node.js. Modul ini memiliki metode untuk mendapatkan, menyetel, dan menghapus variabel. Class ini juga memiliki metode praktis untuk menyetel variabel bilangan bulat.
Variabel alur ada dalam konteks alur proxy API. Beberapa variabel "bawaan" di Edge. Variabel lainnya dibuat saat kebijakan dijalankan, dan Anda dapat membuat variabel Anda sendiri. Variabel alur biasanya digunakan untuk meneruskan data dari satu kebijakan ke kebijakan lain dan untuk menetapkan kondisi dalam alur bersyarat. Untuk mengetahui informasi tentang variabel alur, lihat Variabel dan kondisi alur.
Untuk pengantar modul apigee-access dan fitur lainnya, lihat
Menggunakan modul apigee-access.
Contoh yang berfungsi
Bayangkan kebijakan Edge yang berjalan di jalur alur permintaan menetapkan variabel yang disebut
AuthenticatedUserId. Kode berikut mengakses variabel tersebut dan mencetaknya ke
log. Selain itu, kode ini menetapkan variabel. Kemudian, Anda dapat mengakses variabel tersebut dari kebijakan,
yang akan kami ilustrasikan di bawah.
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/');
Anda dapat menyalin kode ini ke dalam file JavaScript, men-deploy-nya ke Edge, dan mencobanya. Panggil
file server.js. Untuk men-deploy-nya, gunakan:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Setelah men-deploy aplikasi ke Edge, tambahkan kebijakan AssignMessage dengan konfigurasi berikut ke alur permintaan 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>
Selanjutnya, lampirkan kebijakan AssignMessage lain ke preflow respons 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>
Anda dapat memanggil proxy seperti ini:
curl -i http://myorg-test.apigee.net/access
Sekarang, buka halaman proxy akses di UI pengelolaan dan buka tampilan Develop. Klik Node.js Logs untuk melihat output log dari proxy. Jika proxy dikonfigurasi dengan benar, Anda akan melihat bahwa variabel userId telah ditetapkan. Anda juga akan melihat bahwa header telah ditetapkan di output cURL di jendela terminal:
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
Metode
getVariable
var result = getVariable(httpRequest, name);
Mendapatkan variabel bernama.
Parameter:
httpRequest: Objek permintaan yang berasal dari modul http.name: (String) Nama variabel yang akan diambil.
Hasil:
String atau angka, bergantung pada jenis yang ditetapkan menggunakan setVariable(), saat dibuat oleh Anda di tempat lain, atau saat dibuat oleh kebijakan. Jika Anda mengakses salah satu variabel Edge siap pakai, Anda dapat menemukan daftar jenis di Referensi Variabel. Untuk jenis variabel yang dibuat oleh kebijakan, lihat topik referensi kebijakan tertentu.
Contoh:
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);
Menetapkan variabel. Beberapa variabel bersifat hanya baca, dan metode setVariable() akan memunculkan pengecualian jika Anda mencoba menyetel salah satunya. Untuk menentukan variabel mana yang bersifat hanya baca, lihat Referensi Variabel.
Parameter:
httpRequest: Objek permintaan yang berasal dari modul http.name: (String) Nama variabel yang akan diambil.value: Dapat berupa angka, String, boolean, null, atau undefined.
Contoh:
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);
Metode setIntVariable() adalah metode praktis yang pertama-tama memaksa parameter nilai menjadi bilangan bulat, lalu menetapkannya.
Parameter:
httpRequest: Objek permintaan yang berasal dari modul http.name: (String) Nama variabel yang akan disetel.value: Parameter nilai harus berupa string atau angka.
Contoh:
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
Menghapus variabel bernama. Menghapus variabel hanya baca adalah error. Untuk daftar lengkap variabel hanya baca, lihat Referensi Variabel.
deleteVariable(httpRequest, name);
Parameter:
httpRequest: Objek permintaan yang berasal dari modul http.name: (String) Nama variabel yang akan dihapus.
Contoh:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');