Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Khi gửi yêu cầu tới proxy API, bạn có thể chuyển bất kỳ hoặc tất cả thông tin sau, tuỳ thuộc vào cách định cấu hình proxy API:
- Tiêu đề của yêu cầu
- Tham số truy vấn
- Dữ liệu biểu mẫu
- Tải trọng XML hoặc JSON
- URI tài nguyên
Theo mặc định, tất cả dữ liệu trong yêu cầu được chuyển không thay đổi từ ProxyEndpoint đến Điểm cuối đích. Do đó, khi TargetEndpoint gửi yêu cầu đến máy chủ phụ trợ, tất cả thông tin trong yêu cầu ban đầu sẽ được chuyển đến dịch vụ phụ trợ.
Điều này cũng đúng đối với phản hồi mà Edge nhận được từ dịch vụ phụ trợ. Theo mặc định, tất cả dữ liệu nhận được trong phản hồi sẽ được chuyển không thay đổi đến ứng dụng đã tạo ra của bạn.
Cách truyền dữ liệu yêu cầu đến phần phụ trợ máy chủ không?
Hình ảnh sau đây cho thấy một định nghĩa của proxy API:
Đối với proxy API này:
- Máy chủ ảo proxy API: "mặc định"
- Miền do máy chủ lưu trữ ảo xác định: "http://myOrg-prod.apigee.net"
- Đường dẫn cơ sở proxy: "/v1/Thời tiết"
- TargetEndpoint được chỉ định theo quy tắc định tuyến: "default"
- URL đích: "http://Weather.yahooapis.com"
Một ứng dụng gửi yêu cầu GET
đến proxy API bằng cách sử dụng thao tác sau
Lệnh curl
:
curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282
Lưu ý rằng yêu cầu này chứa tài nguyên "ForecastRSS" và một tham số truy vấn,
w
. Edge phân tích cú pháp yêu cầu thành
như bên dưới và chỉ định các phần của yêu cầu cho các biến luồng:
{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}
Biến luồng được thiết lập với các giá trị sau:
request.verb
: "GET"proxy.basepath
: "/v1/thời tiết"proxy.pathsuffix
: "dự báo RSS"request.querystring
: "w=12797282"
Sau đó, TargetEndpoint gửi yêu cầu tới dịch vụ phụ trợ bằng cách sử dụng thông tin từ yêu cầu:
{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}
Lưu ý cách tự động thêm tham số tài nguyên và tham số truy vấn được chỉ định trong yêu cầu trong yêu cầu đến máy chủ phụ trợ. Theo định nghĩa của TargetEndpoint, khi đó yêu cầu có dạng:
curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282
Giống như tham số truy vấn, mọi tiêu đề hoặc tham số biểu mẫu mà bạn đưa vào yêu cầu đến API proxy được chuyển đến máy chủ phụ trợ. Ví dụ: bạn đưa ra yêu cầu bên dưới, trong đó bao gồm tiêu đề:
curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282
Hoặc yêu cầu trong biểu mẫu bên dưới để bao gồm tiêu đề và dữ liệu biểu mẫu:
curl -X POST -H "Content-type:application/json" -d \ '{"email" : "janetutorialxml@example.com", "firstName" : "Jane", "lastName" : "Tutorial", "userName" : "jtutorialxml" }' \ http://myOrg-prod.apigee.net/v1/register/user
Trong cả hai ví dụ, tiêu đề và dữ liệu biểu mẫu được chuyển không thay đổi đến dịch vụ phụ trợ. Chiến lược phát hành đĩa đơn
tiêu đề được biểu thị bằng các biến luồng như request.headers.count
và
request.headers.names
Dữ liệu biểu mẫu được biểu thị bằng các biến luồng như
request.formparam.count
và request.formparam.names
.
Dữ liệu phản hồi được trả về như thế nào?
Theo mặc định, tất cả dữ liệu mà Edge nhận được từ dịch vụ phụ trợ trong phản hồi sẽ được chuyển không thay đổi đối với ứng dụng đã đưa ra yêu cầu. Như được mô tả ở trên đối với yêu cầu, dữ liệu trả về trong phản hồi có thể truy cập được thông qua các biến luồng trên Edge. Để biết thêm thông tin, hãy xem Tài liệu tham khảo về biến luồng.
Truy cập dữ liệu yêu cầu và phản hồi trong proxy API
Có nhiều trường hợp bạn muốn sửa đổi dữ liệu yêu cầu trước khi gửi dữ liệu đó đến phần phụ trợ máy chủ. Ví dụ:
- Để xoá thông tin bảo mật mà Edge sử dụng để xác thực yêu cầu. Thông tin đó không mà dịch vụ phụ trợ yêu cầu.
- Để thêm dữ liệu được gửi đến dịch vụ phụ trợ, chẳng hạn như để theo dõi người dùng hoặc để thu thập số liệu phân tích.
- Để xử lý yêu cầu theo cách có điều kiện dựa trên dữ liệu về yêu cầu. Ví dụ: proxy API có thể có nhiều TargetEndpoints. TargetEndpoint mà yêu cầu sử dụng được xác định theo yêu cầu . Sau đó, bạn sẽ xoá dữ liệu đó khỏi yêu cầu trước khi gửi đến dịch vụ phụ trợ.
Điều này cũng đúng đối với dữ liệu trong phản hồi. Trong quá trình xử lý phản hồi, proxy API có thể muốn sửa đổi dữ liệu trước khi trả lại cho ứng dụng yêu cầu.
Thông báo yêu cầu quyền truy cập
Bạn có thể dùng các chính sách để truy cập và thay đổi các phần của thông báo yêu cầu. Các phần này bao gồm:
- Tiêu đề
- Tham số truy vấn
- Thông số biểu mẫu
- Địa chỉ IP nguồn
- Nội dung thông báo HTTP
Trong một quy trình thông thường, sau khi yêu cầu được xử lý, proxy sẽ gửi giá trị đến mục tiêu.
Các chính sách có thể kiểm tra các biến yêu cầu, sau đó chuyển đổi hoặc từ chối yêu cầu dựa trên nội dung của các biến đó. Các chính sách sẽ chuyển đổi yêu cầu bằng cách đặt các biến thích hợp, chẳng hạn như các biến ví dụ tương ứng với tiêu đề của yêu cầu.
Truy cập vào tin nhắn phản hồi
Khi sử dụng các biến áp dụng cho tin nhắn phản hồi, các chính sách có thể truy cập vào các thành phần của thông báo bao gồm tiêu đề, tham số truy vấn và tham số biểu mẫu, địa chỉ IP nguồn, HTTP nội dung thư, v.v.
Proxy nhận một thông báo phản hồi, sau đó áp dụng cho nó một loạt các chính sách, dựa trên các điều kiện được đánh giá dựa trên phản hồi. Các điều kiện này có thể sửa đổi hoặc biến đổi phản hồi.
Các chính sách có thể kiểm tra các biến phản hồi, sau đó chuyển đổi hoặc từ chối yêu cầu dựa trên nội dung của các biến đó. Các chính sách chuyển đổi phản hồi bằng cách đặt các biến phù hợp, chẳng hạn như các biến ví dụ tương ứng với các tiêu đề phản hồi.
Các chính sách chung để truy cập vào biến luồng
Edge xác định một số chính sách mà bạn có thể sử dụng để xử lý dữ liệu yêu cầu và phản hồi. Các chính sách bao gồm:
- Chỉ định chính sách: Tạo hoặc sửa đổi thông báo yêu cầu HTTP hoặc thông báo phản hồi trong proxy API luồng. Ngoài ra, bạn có thể tạo và điền các biến luồng mới.
- Chính sách ExtractVariables: Trích xuất nội dung từ các thông báo, bao gồm cả tiêu đề, đường dẫn URI, tải trọng và tham số truy vấn để sử dụng trong câu lệnh điều kiện. Sau đó, chính sách này áp dụng một mẫu văn bản cho nội dung thông báo và khi tìm thấy kết quả trùng khớp, hãy đặt biến được chỉ định.
- Chính sách JSONtoXML và Chính sách XMLtoJSON: Chuyển đổi thông báo từ Ký hiệu đối tượng JavaScript (JSON) sang ngôn ngữ đánh dấu có thể mở rộng (XML) hoặc ngược lại.
- Chính sách về Chú thích Java, Chính sách về JavaScript, Chính sách về PythonScript, Chính sách RegularExpressionProtection: Các chính sách này cho phép bạn viết một tập lệnh để truy cập vào các biến luồng chứa dữ liệu yêu cầu và phản hồi.