Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Giới thiệu
Dùng mô-đun apigee-access
để truy cập vào quy trình Apigee Edge
biến trong ứng dụng Node.js. Mô-đun này có các phương thức để nhận, cài đặt và xoá biến. Mã này cũng có một phương thức thuận tiện để đặt biến số nguyên.
Biến luồng tồn tại trong ngữ cảnh của luồng proxy API. Một số biến được "tích hợp" đến Cạnh. Các biến khác được tạo khi chính sách thực thi và bạn có thể tạo các biến của riêng mình. Quy trình biến thường được dùng để truyền dữ liệu từ chính sách này sang chính sách khác và để thiết lập các điều kiện trong luồng có điều kiện. Để biết thông tin về các biến luồng, hãy xem bài viết Các biến luồng và điều kiện.
Để biết giới thiệu về mô-đun apigee-access
và các tính năng khác của mô-đun này, hãy xem
Sử dụng mô-đun truy cập apigee.
Ví dụ về hoạt động
Hãy tưởng tượng rằng một chính sách Edge chạy trên đường dẫn luồng yêu cầu sẽ đặt một biến có tên là
AuthenticatedUserId
. Đoạn mã sau đây truy cập biến đó và in biến đó ra
nhật ký của bạn. Ngoài ra, mã này còn đặt một biến. Sau đó, bạn có thể truy cập vào biến đó từ chính sách.
mà chúng tôi minh hoạ dưới đây.
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/');
Bạn có thể sao chép mã này vào một tệp JavaScript, triển khai mã này lên Edge rồi dùng thử. Gọi
tệp server.js
. Để triển khai tính năng này, hãy sử dụng:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Sau khi bạn triển khai ứng dụng cho Edge, hãy thêm chính sách AssignmentsMessage với những thông tin sau cho luồng yêu cầu 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>
Tiếp theo, hãy đính kèm một chính sách PagingMessage khác vào quy trình trước phản hồi 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>
Bạn có thể gọi proxy như sau:
curl -i http://myorg-test.apigee.net/access
Bây giờ, hãy đi tới trang của proxy truy cập trong giao diện người dùng quản lý và hiển thị Chế độ xem Develop (Phát triển). Nhấp vào Nhật ký Node.js để xem kết quả nhật ký từ proxy. Nếu proxy được định cấu hình đúng cách, bạn sẽ thấy biến userId đã được đặt. Bạn cũng sẽ thấy tiêu đề đã được đặt trong đầu ra cURL trong cửa sổ dòng lệnh:
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
Phương thức
getVariable
var result = getVariable(httpRequest, name);
Lấy một biến được đặt tên.
Các tham số:
httpRequest
: Đối tượng yêu cầu đến từ mô-đun http.name
: (Chuỗi) Tên của biến cần truy xuất.
Trường hợp trả lại hàng:
Một chuỗi hoặc một số, tuỳ thuộc vào loại được đặt bằng setVariable(), thời điểm do bạn tạo ở nơi khác hoặc khi chính sách tạo ra sản phẩm đó. Nếu bạn đang truy cập một trong Các biến cạnh có sẵn, bạn có thể xem danh sách các loại trong Tài liệu tham khảo về biến. Đối với các loại biến do chính sách tạo ra, hãy tham khảo chủ đề tham khảo cụ thể về chính sách.
Ví dụ:
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);
Đặt một biến. Một số biến chỉ có thể đọc và phương thức setVariable() sẽ gửi ngoại lệ nếu bạn cố đặt một trong các cài đặt đó. Để xác định biến nào ở chế độ chỉ đọc, hãy xem các biến Tệp đối chiếu.
Các tham số:
httpRequest
: Đối tượng yêu cầu đến từ mô-đun http.name
: (Chuỗi) Tên của biến cần truy xuất.value
: Có thể là một số, Chuỗi, boolean, rỗng hoặc không xác định.
Ví dụ:
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);
Phương thức setIntVariable() là phương thức tiện lợi mà trước tiên sẽ ép buộc tham số giá trị thành một số nguyên, rồi đặt nó.
Các tham số:
httpRequest
: Đối tượng yêu cầu đến từ mô-đun http.name
: (Chuỗi) Tên của biến cần đặt.value
: Tham số giá trị phải là một chuỗi hoặc một số.
Ví dụ:
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
Xoá một biến đã đặt tên. Đã xảy ra lỗi khi xoá biến chỉ đọc. Để xem đầy đủ danh sách biến chỉ đọc, hãy xem Tài liệu tham khảo về biến.
deleteVariable(httpRequest, name);
Các tham số:
httpRequest
: Đối tượng yêu cầu đến từ mô-đun http.name
: (Chuỗi) Tên của biến cần xoá.
Ví dụ:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');